<?xml version="1.0"?>
<doc>
    <assembly>
        <name>TimeSeriesFramework</name>
    </assembly>
    <members>
        <member name="T:TimeSeriesFramework.Adapters.ConnectionStringParameterAttribute">
            <summary>
            Marks a parameter as being a connection string parameter used to configure an <see cref="T:TimeSeriesFramework.Adapters.IAdapter"/>.
            </summary>
        </member>
        <member name="T:TimeSeriesFramework.Adapters.IaonSession">
            <summary>
            Represents a new Input, Action, Output interface session.
            </summary>
        </member>
        <member name="F:TimeSeriesFramework.Adapters.IaonSession.DefaultUseMeasurementRouting">
            <summary>
            Default value for <see cref="P:TimeSeriesFramework.Adapters.IaonSession.UseMeasurementRouting"/> property.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.IaonSession.#ctor">
            <summary>
            Creates a new <see cref="T:TimeSeriesFramework.Adapters.IaonSession"/>.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.IaonSession.Finalize">
            <summary>
            Releases the unmanaged resources before the <see cref="T:TimeSeriesFramework.Adapters.IaonSession"/> object is reclaimed by <see cref="T:System.GC"/>.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.IaonSession.Dispose">
            <summary>
            Releases all the resources used by the <see cref="T:TimeSeriesFramework.Adapters.IaonSession"/> object.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.IaonSession.Dispose(System.Boolean)">
            <summary>
            Releases the unmanaged resources used by the <see cref="T:TimeSeriesFramework.Adapters.IaonSession"/> object and optionally releases the managed resources.
            </summary>
            <param name="disposing">true to release both managed and unmanaged resources; false to release only unmanaged resources.</param>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.IaonSession.Initialize(System.Boolean)">
            <summary>
            Initialize and start adapters.
            </summary>
            <param name="autoStart">Sets flag that determines if adapters should be automatically started.</param>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.IaonSession.DetermineTemporalSupport">
            <summary>
            Determines which adapters in the <see cref="T:TimeSeriesFramework.Adapters.IaonSession"/> support temporal processing.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.IaonSession.TemporalProcessingSupportExists(System.String)">
            <summary>
            Gets flag that determines if temporal processing is supported in this <see cref="T:TimeSeriesFramework.Adapters.IaonSession"/>.
            </summary>
            <param name="collection">Name of collection over which to check support (e.g., "InputAdapters"); or <c>null</c> for all collections.</param>
            <returns>Flag that determines if temporal processing is supported in this <see cref="T:TimeSeriesFramework.Adapters.IaonSession"/>.</returns>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.IaonSession.GetDerivedName(System.Object)">
            <summary>
            Gets derived name of specified object.
            </summary>
            <param name="sender">Sending object from which to derive name.</param>
            <returns>Derived name of specified object.</returns>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.IaonSession.RecalculateRoutingTables">
            <summary>
            Recalculates routing tables as long as all adapters have been initialized.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.IaonSession.OnStatusMessage(System.Object,System.String,TVA.UpdateType)">
            <summary>
            Raises the <see cref="E:TimeSeriesFramework.Adapters.IaonSession.StatusMessage"/> event.
            </summary>
            <param name="sender">Object source raising the event.</param>
            <param name="status">New status message.</param>
            <param name="type"><see cref="T:TVA.UpdateType"/> of status message.</param>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.IaonSession.OnStatusMessage(System.Object,System.String,TVA.UpdateType,System.Object[])">
            <summary>
            Raises the <see cref="E:TimeSeriesFramework.Adapters.IaonSession.StatusMessage"/> event with a formatted status message.
            </summary>
            <param name="sender">Object source raising the event.</param>
            <param name="formattedStatus">Formatted status message.</param>
            <param name="type"><see cref="T:TVA.UpdateType"/> of status message.</param>
            <param name="args">Arguments for <paramref name="formattedStatus"/>.</param>
            <remarks>
            This overload combines string.Format and SendStatusMessage for convienence.
            </remarks>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.IaonSession.OnProcessException(System.Object,System.Exception)">
            <summary>
            Raises <see cref="E:TimeSeriesFramework.Adapters.IaonSession.ProcessException"/> event.
            </summary>
            <param name="sender">Object source raising the event.</param>
            <param name="ex">Processing <see cref="T:System.Exception"/>.</param>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.IaonSession.OnInputMeasurementKeysUpdated(System.Object)">
            <summary>
            Raises <see cref="E:TimeSeriesFramework.Adapters.IaonSession.InputMeasurementKeysUpdated"/> event.
            </summary>
            <param name="sender">Object source raising the event.</param>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.IaonSession.OnOutputMeasurementsUpdated(System.Object)">
            <summary>
            Raises <see cref="E:TimeSeriesFramework.Adapters.IaonSession.OutputMeasurementsUpdated"/> event.
            </summary>
            <param name="sender">Object source raising the event.</param>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.IaonSession.OnUnpublishedSamples(System.Object,System.Int32)">
            <summary>
            Raises the <see cref="E:TimeSeriesFramework.Adapters.IaonSession.UnpublishedSamples"/> event.
            </summary>
            <param name="sender">Object source raising the event.</param>
            <param name="seconds">Total number of unpublished seconds of data.</param>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.IaonSession.OnUnprocessedMeasurements(System.Object,System.Int32)">
            <summary>
            Raises the <see cref="E:TimeSeriesFramework.Adapters.IaonSession.UnprocessedMeasurements"/> event.
            </summary>
            <param name="sender">Object source raising the event.</param>
            <param name="unprocessedMeasurements">Total measurements in the queue that have not been processed.</param>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.IaonSession.OnProcessingComplete(System.Object,System.EventArgs)">
            <summary>
            Raises the <see cref="E:TimeSeriesFramework.Adapters.IaonSession.ProcessingComplete"/> event.
            </summary>
            <param name="sender">Object source raising the event.</param>
            <param name="e"><see cref="T:System.EventArgs"/>, if any.</param>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.IaonSession.OnDisposed(System.Object)">
            <summary>
            Raises the <see cref="E:TimeSeriesFramework.Adapters.IaonSession.Disposed"/> event.
            </summary>
            <param name="sender">Object source raising the event.</param>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.IaonSession.StatusMessageHandler(System.Object,TVA.EventArgs{System.String})">
            <summary>
            Event handler for reporting status messages.
            </summary>
            <param name="sender">Event source of the status message.</param>
            <param name="e">Event arguments containing the status message to report.</param>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.IaonSession.ProcessExceptionHandler(System.Object,TVA.EventArgs{System.Exception})">
            <summary>
            Event handler for processing reported exceptions.
            </summary>
            <param name="sender">Event source of the exception.</param>
            <param name="e">Event arguments containing the exception to report.</param>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.IaonSession.InputMeasurementKeysUpdatedHandler(System.Object,System.EventArgs)">
            <summary>
            Event handler for updates to adapter input measurement key definitions.
            </summary>
            <param name="sender">Sending object.</param>
            <param name="e">Event arguments, if any.</param>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.IaonSession.OutputMeasurementsUpdatedHandler(System.Object,System.EventArgs)">
            <summary>
            Event handler for updates to adapter output measurement definitions.
            </summary>
            <param name="sender">Sending object.</param>
            <param name="e">Event arguments, if any.</param>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.IaonSession.UnpublishedSamplesHandler(System.Object,TVA.EventArgs{System.Int32})">
            <summary>
            Event handler for monitoring unpublished samples.
            </summary>
            <param name="sender">Event source reference to adapter, typically an action adapter, that is reporting the number of unpublished data samples.</param>
            <param name="e">Event arguments containing number of samples, in seconds of data, of unpublished data in the source adapter.</param>
            <remarks>
            Time-series framework uses this handler to monitor the number of unpublished samples, in seconds of data, in action adapters.<br/>
            This method is typically called once every five seconds.
            </remarks>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.IaonSession.UnprocessedMeasurementsHandler(System.Object,TVA.EventArgs{System.Int32})">
            <summary>
            Event handler for monitoring unprocessed measurements.
            </summary>
            <param name="sender">Event source reference to adapter, typically an output adapter, that is reporting the number of unprocessed measurements.</param>
            <param name="e">Event arguments containing number of queued (i.e., unprocessed) measurements in the source adapter.</param>
            <remarks>
            Time-series framework uses this handler to monitor the number of unprocessed measurements in output adapters.<br/>
            This method is typically called once every five seconds.
            </remarks>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.IaonSession.ProcessingCompleteHandler(System.Object,System.EventArgs)">
            <summary>
            Event handler for processing complete notifications from input adapters.
            </summary>
            <param name="sender">Event source reference to input adapter that is reporting processing completion.</param>
            <param name="e">Event arguments for event, if any; otherwise <see cref="F:System.EventArgs.Empty"/>.</param>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.IaonSession.DisposedHandler(System.Object,System.EventArgs)">
            <summary>
            Event handler for disposed events from all adapters.
            </summary>
            <param name="sender">Sending object.</param>
            <param name="e">Event arguments, if any.</param>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.IaonSession.ExtractTemporalConfiguration(System.Data.DataSet)">
            <summary>
            Extracts a configuration that supports temporal processing from an existing real-time configuration.
            </summary>
            <param name="realtimeConfiguration">Real-time <see cref="T:System.Data.DataSet"/> configuration.</param>
            <returns>A new <see cref="T:System.Data.DataSet"/> configuration for adapters that support temporal processing.</returns>
        </member>
        <member name="E:TimeSeriesFramework.Adapters.IaonSession.StatusMessage">
            <summary>
            Provides status messages to consumer.
            </summary>
            <remarks>
            <see cref="F:TVA.EventArgs`2.Argument1"/> is the new status message.<br/>
            <see cref="F:TVA.EventArgs`2.Argument2"/> is the message <see cref="T:TVA.UpdateType"/>.
            </remarks>
        </member>
        <member name="E:TimeSeriesFramework.Adapters.IaonSession.ProcessException">
            <summary>
            Event is raised when there is an exception encountered while processing.
            </summary>
            <remarks>
            <see cref="F:TVA.EventArgs`1.Argument"/> is the exception that was thrown.
            </remarks>
        </member>
        <member name="E:TimeSeriesFramework.Adapters.IaonSession.InputMeasurementKeysUpdated">
            <summary>
            Event is raised when <see cref="P:TimeSeriesFramework.Adapters.IAdapter.InputMeasurementKeys"/> are updated.
            </summary>
        </member>
        <member name="E:TimeSeriesFramework.Adapters.IaonSession.OutputMeasurementsUpdated">
            <summary>
            Event is raised when <see cref="P:TimeSeriesFramework.Adapters.IAdapter.OutputMeasurements"/> are updated.
            </summary>
        </member>
        <member name="E:TimeSeriesFramework.Adapters.IaonSession.UnpublishedSamples">
            <summary>
            Event is raised every five seconds allowing consumer to track current number of unpublished seconds of data in the queue.
            </summary>
            <remarks>
            <see cref="F:TVA.EventArgs`1.Argument"/> is the total number of unpublished seconds of data.
            </remarks>
        </member>
        <member name="E:TimeSeriesFramework.Adapters.IaonSession.UnprocessedMeasurements">
            <summary>
            Event is raised every five seconds allowing host to track total number of unprocessed measurements.
            </summary>
            <remarks>
            <para>
            Each <see cref="T:TimeSeriesFramework.Adapters.IOutputAdapter"/> implementation reports its current queue size of unprocessed
            measurements so that if queue size reaches an unhealthy threshold, host can take evasive action.
            </para>
            <para>
            <see cref="F:TVA.EventArgs`1.Argument"/> is total number of unprocessed measurements.
            </para>
            </remarks>
        </member>
        <member name="E:TimeSeriesFramework.Adapters.IaonSession.ProcessingComplete">
            <summary>
            Indicates to the host that processing for one of the input adapters has completed.
            </summary>
            <remarks>
            This event is expected to only be raised when an input adapter has been designed to process
            a finite amount of data, e.g., reading a historical range of data during temporal procesing.
            </remarks>
        </member>
        <member name="E:TimeSeriesFramework.Adapters.IaonSession.Disposed">
            <summary>
            Event is raised when this <see cref="T:TimeSeriesFramework.Adapters.AdapterCollectionBase`1"/> is disposed or an <see cref="T:TimeSeriesFramework.Adapters.IAdapter"/> in the collection is disposed.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.IaonSession.AllAdapters">
            <summary>
            Gets the all adapters collection for this <see cref="T:TimeSeriesFramework.Adapters.IaonSession"/>.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.IaonSession.InputAdapters">
            <summary>
            Gets the input adapter collection for this <see cref="T:TimeSeriesFramework.Adapters.IaonSession"/>.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.IaonSession.ActionAdapters">
            <summary>
            Gets the action adapter collection for this <see cref="T:TimeSeriesFramework.Adapters.IaonSession"/>.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.IaonSession.OutputAdapters">
            <summary>
            Gets the output adapter collection for this <see cref="T:TimeSeriesFramework.Adapters.IaonSession"/>.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.IaonSession.UseMeasurementRouting">
            <summary>
            Gets or sets flag that determines if measurement routing should be used.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.IaonSession.RoutingTables">
            <summary>
            Gets the routing tables for this <see cref="T:TimeSeriesFramework.Adapters.IaonSession"/>.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.IaonSession.InputMeasurementKeysRestriction">
            <summary>
            Gets or sets a routing table restriction for a collection of input measurement keys.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.IaonSession.DataSource">
            <summary>
            Gets or sets the configuration <see cref="T:System.Data.DataSet"/> for this <see cref="T:TimeSeriesFramework.Adapters.IaonSession"/>.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.IaonSession.NodeID">
            <summary>
            Gets or sets the <see cref="T:System.Guid"/> node ID  for this <see cref="T:TimeSeriesFramework.Adapters.IaonSession"/>.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.IaonSession.Name">
            <summary>
            Gets name assigned to this <see cref="T:TimeSeriesFramework.Adapters.IaonSession"/>, if any.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.IaonSession.Status">
            <summary>
            Gets the combined status of the adapters in this <see cref="T:TimeSeriesFramework.Adapters.IaonSession"/>.
            </summary>
        </member>
        <member name="T:TimeSeriesFramework.Adapters.RoutingTables">
            <summary>
            Represents the routing tables for the Iaon adapters.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.RoutingTables.#ctor">
            <summary>
            Creates a new instance of the <see cref="T:TimeSeriesFramework.Adapters.RoutingTables"/> class.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.RoutingTables.Finalize">
            <summary>
            Releases the unmanaged resources before the <see cref="T:TimeSeriesFramework.Adapters.RoutingTables"/> object is reclaimed by <see cref="T:System.GC"/>.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.RoutingTables.Dispose">
            <summary>
            Releases all the resources used by the <see cref="T:TimeSeriesFramework.Adapters.RoutingTables"/> object.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.RoutingTables.Dispose(System.Boolean)">
            <summary>
            Releases the unmanaged resources used by the <see cref="T:TimeSeriesFramework.Adapters.RoutingTables"/> object and optionally releases the managed resources.
            </summary>
            <param name="disposing">true to release both managed and unmanaged resources; false to release only unmanaged resources.</param>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.RoutingTables.CalculateRoutingTables(TimeSeriesFramework.MeasurementKey[])">
            <summary>
            Spawn routing tables recalculation.
            </summary>
            <param name="inputMeasurementKeysRestriction">Input measurement keys restriction.</param>
            <remarks>
            Set the <paramref name="inputMeasurementKeysRestriction"/> to null to use full adapter I/O routing demands.
            </remarks>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.RoutingTables.RoutedMeasurementsHandler(System.Object,TVA.EventArgs{System.Collections.Generic.ICollection{TimeSeriesFramework.IMeasurement}})">
            <summary>
            Event handler for distributing new measurements in a routed fashion.
            </summary>
            <param name="sender">Event source reference to adapter that generated new measurements.</param>
            <param name="e">Event arguments containing a collection of new measurements.</param>
            <remarks>
            Time-series framework uses this handler to directly route new measurements to the action and output adapters.
            </remarks>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.RoutingTables.RoutedMeasurementsHandler(System.Collections.Generic.IEnumerable{TimeSeriesFramework.IMeasurement})">
            <summary>
            Method for distributing new measurements in a routed fashion.
            </summary>
            <param name="newMeasurements">Collection of new measurements.</param>
            <remarks>
            Time-series framework uses this handler to directly route new measurements to the action and output adapters.
            </remarks>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.RoutingTables.BroadcastMeasurementsHandler(System.Object,TVA.EventArgs{System.Collections.Generic.ICollection{TimeSeriesFramework.IMeasurement}})">
            <summary>
            Event handler for distributing new measurements in a broadcast fashion.
            </summary>
            <param name="sender">Event source reference to adapter that generated new measurements.</param>
            <param name="e">Event arguments containing a collection of new measurements.</param>
            <remarks>
            Time-series framework uses this handler to route new measurements to the action and output adapters; adapter will handle filtering.
            </remarks>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.RoutingTables.OnProcessException(System.Exception)">
            <summary>
            Raises <see cref="E:TimeSeriesFramework.Adapters.RoutingTables.ProcessException"/> event.
            </summary>
            <param name="ex">Processing <see cref="T:System.Exception"/>.</param>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.RoutingTables.HandleConnectOnDemandAdapters(TimeSeriesFramework.MeasurementKey[])">
            <summary>
            Starts or stops connect on demand adapters based on current state of demanded input or output measurements.
            </summary>
            <param name="inputMeasurementKeysRestriction">Input measurement keys restriction.</param>
            <remarks>
            Set the <paramref name="inputMeasurementKeysRestriction"/> to null to use full adapter routing demands.
            </remarks>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.RoutingTables.TraverseMeasurementKeyDependencyChain(TimeSeriesFramework.MeasurementKey[],System.Collections.Generic.IEnumerable{TimeSeriesFramework.MeasurementKey}@,System.Collections.Generic.IEnumerable{TimeSeriesFramework.MeasurementKey}@)">
            <summary>
            Calculates the input and output measurement key dependency chain based on a set of input measurement keys restriction.
            </summary>
            <param name="inputMeasurementKeysRestriction">Input measurement keys restriction.</param>
            <param name="outputMeasurementKeys">Dependent output measurement keys to return.</param>
            <param name="inputMeasurementKeys">Dependent input measurement keys to return.</param>
        </member>
        <member name="E:TimeSeriesFramework.Adapters.RoutingTables.ProcessException">
            <summary>
            Event is raised when there is an exception encountered while processing.
            </summary>
            <remarks>
            <see cref="F:TVA.EventArgs`1.Argument"/> is the exception that was thrown.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.RoutingTables.InputAdapters">
            <summary>
            Gets or sets the active <see cref="T:TimeSeriesFramework.Adapters.InputAdapterCollection"/>.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.RoutingTables.ActionAdapters">
            <summary>
            Gets or sets the active <see cref="T:TimeSeriesFramework.Adapters.ActionAdapterCollection"/>.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.RoutingTables.OutputAdapters">
            <summary>
            Gets or sets the active <see cref="T:TimeSeriesFramework.Adapters.OutputAdapterCollection"/>.
            </summary>
        </member>
        <member name="T:TimeSeriesFramework.AlarmState">
            <summary>
            Represents the two states that an alarm can be in: raised or cleared.
            </summary>
        </member>
        <member name="F:TimeSeriesFramework.AlarmState.Cleared">
            <summary>
            Indicates that an alarm is cleared.
            </summary>
        </member>
        <member name="F:TimeSeriesFramework.AlarmState.Raised">
            <summary>
            Indicates that an alarm has been raised.
            </summary>
        </member>
        <member name="T:TimeSeriesFramework.AlarmSeverity">
            <summary>
            Represents the severity of alarms.
            </summary>
        </member>
        <member name="F:TimeSeriesFramework.AlarmSeverity.None">
            <summary>
            Indicates that an alarm is of no importance.
            </summary>
        </member>
        <member name="F:TimeSeriesFramework.AlarmSeverity.Information">
            <summary>
            Indicates that an alarm is informative, but not dangerous.
            </summary>
        </member>
        <member name="F:TimeSeriesFramework.AlarmSeverity.Low">
            <summary>
            Indicates that an alarm is not very important.
            </summary>
        </member>
        <member name="F:TimeSeriesFramework.AlarmSeverity.MediumLow">
            <summary>
            Indicates that an alarm is somewhat important.
            </summary>
        </member>
        <member name="F:TimeSeriesFramework.AlarmSeverity.Medium">
            <summary>
            Indicates that an alarm is moderately importance.
            </summary>
        </member>
        <member name="F:TimeSeriesFramework.AlarmSeverity.MediumHigh">
            <summary>
            Indicates that an alarm is important.
            </summary>
        </member>
        <member name="F:TimeSeriesFramework.AlarmSeverity.High">
            <summary>
            Indicates that an alarm is very important.
            </summary>
        </member>
        <member name="F:TimeSeriesFramework.AlarmSeverity.Critical">
            <summary>
            Indicates than an alarm signifies a dangerous situation.
            </summary>
        </member>
        <member name="F:TimeSeriesFramework.AlarmSeverity.Error">
            <summary>
            Indicates that an alarm reports bad data.
            </summary>
        </member>
        <member name="T:TimeSeriesFramework.AlarmOperation">
            <summary>
            Represents the operation to be performed
            when testing values from an incoming signal.
            </summary>
        </member>
        <member name="F:TimeSeriesFramework.AlarmOperation.Equal">
            <summary>
            Internal range test
            </summary>
        </member>
        <member name="F:TimeSeriesFramework.AlarmOperation.NotEqual">
            <summary>
            External range test
            </summary>
        </member>
        <member name="F:TimeSeriesFramework.AlarmOperation.GreaterOrEqual">
            <summary>
            Upper bound
            </summary>
        </member>
        <member name="F:TimeSeriesFramework.AlarmOperation.LessOrEqual">
            <summary>
            Lower bound
            </summary>
        </member>
        <member name="F:TimeSeriesFramework.AlarmOperation.GreaterThan">
            <summary>
            Upper limit
            </summary>
        </member>
        <member name="F:TimeSeriesFramework.AlarmOperation.LessThan">
            <summary>
            Lower limit
            </summary>
        </member>
        <member name="F:TimeSeriesFramework.AlarmOperation.Flatline">
            <summary>
            Latched value
            </summary>
        </member>
        <member name="T:TimeSeriesFramework.Alarm">
            <summary>
            Represents an alarm that tests the values of
            an incoming signal to determine the state of alarm.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Alarm.#ctor">
            <summary>
            Creates a new instance of the <see cref="T:TimeSeriesFramework.Alarm"/> class.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Alarm.Test(TimeSeriesFramework.IMeasurement)">
            <summary>
            Tests the value of the given signal to determine
            whether the alarm should be raised or cleared.
            </summary>
            <param name="signal">The signal whose value is to be tested.</param>
            <returns>true if the alarm's state changed; false otherwise</returns>
        </member>
        <member name="P:TimeSeriesFramework.Alarm.ID">
            <summary>
            Gets or sets the identification number of the alarm.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Alarm.TagName">
            <summary>
            Gets or sets the tag name of the alarm.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Alarm.SignalID">
            <summary>
            Gets or sets the identification number of the
            signal whose value is monitored by the alarm.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Alarm.AssociatedMeasurementID">
            <summary>
            Gets or sets the identification number of
            the measurements generated for alarm events.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Alarm.Description">
            <summary>
            Gets or sets the description of the alarm.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Alarm.Severity">
            <summary>
            Gets or sets the severity of the alarm.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Alarm.Operation">
            <summary>
            Gets or sets the operation to be performed
            when testing values from the incoming signal.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Alarm.SetPoint">
            <summary>
            Gets or sets the value to be compared against
            the signal to determine whether to raise the
            alarm. This value is irrelevant for the
            <see cref="F:TimeSeriesFramework.AlarmOperation.Flatline"/> operation.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Alarm.Tolerance">
            <summary>
            Gets or sets a tolerance window around the
            <see cref="P:TimeSeriesFramework.Alarm.SetPoint"/> to use when comparing
            against the value of the signal. This value
            is only relevant for the <see cref="F:TimeSeriesFramework.AlarmOperation.Equal"/>
            and <see cref="F:TimeSeriesFramework.AlarmOperation.NotEqual"/> operations.
            </summary>
            <remarks>
            <para>The equal and not equal operations are actually
            internal and external range tests based on the setpoint
            and the tolerance. The two tests are performed as follows.</para>
            
            <list type="bullet">
            <item>Equal: <c>(value &gt;= SetPoint - Tolerance) &amp;&amp; (value &lt;= SetPoint + Tolerance)</c></item>
            <item>Not equal: <c>(value &lt; SetPoint - Tolerance) || (value &gt; SetPoint + Tolerance)</c></item>
            </list>
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.Alarm.Delay">
            <summary>
            Gets or sets the amount of time that the
            signal must be exhibiting alarming behavior
            before the alarm is raised.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Alarm.Hysteresis">
            <summary>
            Gets or sets the hysteresis used when clearing
            alarms. This value is only relevant in greater
            than (or equal) and less than (or equal) operations.
            </summary>
            <remarks>
            <para>The hysteresis is an offset that provides padding between
            the point at which the alarm is raised and the point at
            which the alarm is cleared. For example, in the case of the
            <see cref="F:TimeSeriesFramework.AlarmOperation.GreaterOrEqual"/> operation:</para>
            
            <list type="bullet">
            <item>Raised: <c>value &gt;= SetPoint</c></item>
            <item>Cleared: <c>value &lt; SetPoint - Hysteresis</c></item>
            </list>
            
            <para>The direction of the offset depends on whether the
            operation is greater than (or equal) or less than (or equal).
            The hysteresis must be greater than zero.</para>
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.Alarm.State">
            <summary>
            Gets or sets the state of the alarm (raised or cleared).
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Alarm.Cause">
            <summary>
            Gets or sets the most recent measurement
            that caused the alarm to be raised.
            </summary>
        </member>
        <member name="T:TimeSeriesFramework.DownsamplingMethod">
            <summary>
            Downsampling method enumeration.
            </summary>
        </member>
        <member name="F:TimeSeriesFramework.DownsamplingMethod.LastReceived">
            <summary>
            Downsamples to the last measurement received.
            </summary>
            <remarks>
            Use this option if no downsampling is needed or the selected value is not critical. This is the fastest option if the incoming and outgoing frame rates match.
            </remarks>
        </member>
        <member name="F:TimeSeriesFramework.DownsamplingMethod.Closest">
            <summary>
            Downsamples to the measurement closest to frame time.
            </summary>
            <remarks>
            This is the typical operation used when performing simple downsampling. This is the fastest option if the incoming frame rate is faster than the outgoing frame rate.
            </remarks>
        </member>
        <member name="F:TimeSeriesFramework.DownsamplingMethod.Filtered">
            <summary>
            Downsamples by applying a user-defined value filter over all received measurements to anti-alias the results.
            </summary>
            <remarks>
            This option will produce the best result but has a processing penalty.
            </remarks>
        </member>
        <member name="F:TimeSeriesFramework.DownsamplingMethod.BestQuality">
            <summary>
            Downsamples to the measurement that has the best quality closest to frame time.
            </summary>
            <remarks>
            This option chooses the measurement closest to the frame time with the best quality.
            </remarks>
        </member>
        <member name="T:TimeSeriesFramework.ConcentratorBase">
            <summary>
            Measurement concentrator base class.
            </summary>
            <remarks>
            <para>
            This class synchronizes (i.e., sorts by timestamp) real-time measurements.
            </para>
            <para>
            Note that your lag time should be defined as it relates to the rate at which data data is coming
            into the concentrator. Make sure you allow enough time for transmission of data over the network
            allowing any needed time for possible network congestion.  Lead time should be defined as your
            confidence in the accuracy of your local clock (e.g., if you set lead time to 2, this means you
            trust that your local clock is within plus or minus 2 seconds of real-time.)
            </para>
            <para>
            This concentrator is designed to sort measurements being transmitted in real-time for data being
            sent at rates of at least 1 sample per second. Slower rates (e.g., once every few seconds) are not
            supported since sorting data at these speeds would be trivial. There is no defined maximum number
            of supported samples per second - but keep in mind that CPU utilization will increase as the
            measurement volume and frame rate increase.
            </para>
            </remarks>
        </member>
        <member name="M:TimeSeriesFramework.ConcentratorBase.#ctor">
            <summary>
            Creates a new <see cref="T:TimeSeriesFramework.ConcentratorBase"/>.
            </summary>
            <remarks>
            Concentration will not begin until consumer "Starts" concentrator (i.e., calling <see cref="M:TimeSeriesFramework.ConcentratorBase.Start"/> method or setting
            <c><see cref="P:TimeSeriesFramework.ConcentratorBase.Enabled"/> = true</c>).
            </remarks>
        </member>
        <member name="M:TimeSeriesFramework.ConcentratorBase.#ctor(System.Int32,System.Double,System.Double)">
            <summary>
            Creates a new <see cref="T:TimeSeriesFramework.ConcentratorBase"/> from specified parameters.
            </summary>
            <param name="framesPerSecond">Number of frames to publish per second.</param>
            <param name="lagTime">Past time deviation tolerance, in seconds - this becomes the amount of time to wait before publishing begins.</param>
            <param name="leadTime">Future time deviation tolerance, in seconds - this becomes the tolerated +/- accuracy of the local clock to real-time.</param>
            <remarks>
            <para>
            <paramref name="framesPerSecond"/> must be greater then 0.
            </para>
            <para>
            <paramref name="lagTime"/> must be greater than zero, but can be specified in sub-second intervals (e.g., set to .25 for a quarter-second lag time).
            Note that this defines time sensitivity to past timestamps.
            </para>
            <para>
            <paramref name="leadTime"/> must be greater than zero, but can be specified in sub-second intervals (e.g., set to .5 for a half-second lead time).
            Note that this defines time sensitivity to future timestamps.
            </para>
            <para>
            Concentration will not begin until consumer "Starts" concentrator (i.e., calling <see cref="M:TimeSeriesFramework.ConcentratorBase.Start"/> method or setting
            <c><see cref="P:TimeSeriesFramework.ConcentratorBase.Enabled"/> = true</c>).
            </para>
            </remarks>
            <exception cref="T:System.ArgumentOutOfRangeException">Specified argument is outside of allowed value range (see remarks).</exception>
        </member>
        <member name="M:TimeSeriesFramework.ConcentratorBase.Finalize">
            <summary>
            Releases the unmanaged resources before the <see cref="T:TimeSeriesFramework.ConcentratorBase"/> object is reclaimed by <see cref="T:System.GC"/>.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.ConcentratorBase.Dispose">
            <summary>
            Releases all the resources used by the <see cref="T:TimeSeriesFramework.ConcentratorBase"/> object.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.ConcentratorBase.Dispose(System.Boolean)">
            <summary>
            Releases the unmanaged resources used by the <see cref="T:TimeSeriesFramework.ConcentratorBase"/> object and optionally releases the managed resources.
            </summary>
            <param name="disposing">true to release both managed and unmanaged resources; false to release only unmanaged resources.</param>
        </member>
        <member name="M:TimeSeriesFramework.ConcentratorBase.Start">
            <summary>
            Starts the concentrator, if it is not already running.
            </summary>
            <remarks>
            Concentrator must be started by calling <see cref="M:TimeSeriesFramework.ConcentratorBase.Start"/> method or setting
            <c><see cref="P:TimeSeriesFramework.ConcentratorBase.Enabled"/> = true</c>) before concentration will begin.
            </remarks>
        </member>
        <member name="M:TimeSeriesFramework.ConcentratorBase.Stop">
            <summary>
            Stops the concentrator.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.ConcentratorBase.ResetStatistics">
            <summary>
            Resets the statistics of the concentrator.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.ConcentratorBase.SecondsFromRealTime(TVA.Ticks)">
            <summary>
            Returns the deviation, in seconds, that the given number of ticks is from real-time (i.e., <see cref="P:TimeSeriesFramework.ConcentratorBase.RealTime"/>).
            </summary>
            <param name="timestamp">Timestamp to calculate distance from real-time.</param>
            <returns>A <see cref="T:System.Double"/> value indicating the deviation, in seconds, from real-time.</returns>
        </member>
        <member name="M:TimeSeriesFramework.ConcentratorBase.MillisecondsFromRealTime(TVA.Ticks)">
            <summary>
            Returns the deviation, in milliseconds, that the given number of ticks is from real-time (i.e., <see cref="P:TimeSeriesFramework.ConcentratorBase.RealTime"/>).
            </summary>
            <param name="timestamp">Timestamp to calculate distance from real-time.</param>
            <returns>A <see cref="T:System.Double"/> value indicating the deviation in milliseconds.</returns>
        </member>
        <member name="M:TimeSeriesFramework.ConcentratorBase.SortMeasurement(TimeSeriesFramework.IMeasurement)">
            <summary>
            Sorts the <see cref="T:TimeSeriesFramework.IMeasurement"/> placing the data point in its proper <see cref="T:TimeSeriesFramework.IFrame"/>.
            </summary>
            <param name="measurement"><see cref="T:TimeSeriesFramework.IMeasurement"/> to sort.</param>
        </member>
        <member name="M:TimeSeriesFramework.ConcentratorBase.SortMeasurements(System.Collections.Generic.IEnumerable{TimeSeriesFramework.IMeasurement})">
            <summary>
            Sorts each <see cref="T:TimeSeriesFramework.IMeasurement"/> placing each data point in its proper <see cref="T:TimeSeriesFramework.IFrame"/>.
            </summary>
            <param name="measurements">Collection of <see cref="T:TimeSeriesFramework.IMeasurement"/>'s to sort.</param>
        </member>
        <member name="M:TimeSeriesFramework.ConcentratorBase.PublishFrame(TimeSeriesFramework.IFrame,System.Int32)">
            <summary>
            Publish <see cref="T:TimeSeriesFramework.IFrame"/> of time-aligned collection of <see cref="T:TimeSeriesFramework.IMeasurement"/> values that arrived within the
            concentrator's defined <see cref="P:TimeSeriesFramework.ConcentratorBase.LagTime"/>.
            </summary>
            <param name="frame"><see cref="T:TimeSeriesFramework.IFrame"/> of measurements with the same timestamp that arrived within <see cref="P:TimeSeriesFramework.ConcentratorBase.LagTime"/> that are ready for processing.</param>
            <param name="index">Index of <see cref="T:TimeSeriesFramework.IFrame"/> within a second ranging from zero to <c><see cref="P:TimeSeriesFramework.ConcentratorBase.FramesPerSecond"/> - 1</c>.</param>
            <remarks>
            If user implemented publication function consistently exceeds available publishing time (i.e., <c>1 / <see cref="P:TimeSeriesFramework.ConcentratorBase.FramesPerSecond"/></c> seconds),
            concentration will fall behind. A small amount of this time is required by the <see cref="T:TimeSeriesFramework.ConcentratorBase"/> for processing overhead, so actual total time
            available for user function process will always be slightly less than <c>1 / <see cref="P:TimeSeriesFramework.ConcentratorBase.FramesPerSecond"/></c> seconds.
            </remarks>
        </member>
        <member name="M:TimeSeriesFramework.ConcentratorBase.CreateNewFrame(TVA.Ticks)">
            <summary>
            Creates a new <see cref="T:TimeSeriesFramework.IFrame"/> for the given <paramref name="timestamp"/>.
            </summary>
            <param name="timestamp">Timestamp for new <see cref="T:TimeSeriesFramework.IFrame"/> in <see cref="T:TVA.Ticks"/>.</param>
            <returns>New <see cref="T:TimeSeriesFramework.IFrame"/> at given <paramref name="timestamp"/>.</returns>
            <remarks>
            Derived classes can override this method to create a new custom <see cref="T:TimeSeriesFramework.IFrame"/>. Default
            behavior creates a basic <see cref="T:TimeSeriesFramework.Frame"/> to hold synchronized measurements.
            </remarks>
        </member>
        <member name="M:TimeSeriesFramework.ConcentratorBase.AssignMeasurementToFrame(TimeSeriesFramework.IFrame,TimeSeriesFramework.IMeasurement)">
            <summary>
            Assigns <see cref="T:TimeSeriesFramework.IMeasurement"/> to its associated <see cref="T:TimeSeriesFramework.IFrame"/>.
            </summary>
            <remarks>
            Derived classes can choose to override this method to handle custom assignment of a <see cref="T:TimeSeriesFramework.IMeasurement"/> to
            its <see cref="T:TimeSeriesFramework.IFrame"/>. Default behavior simply assigns measurement to frame's keyed measurement dictionary:
            <code>frame.Measurements[measurement.Key] = measurement;</code>
            </remarks>
            <param name="frame">The <see cref="T:TimeSeriesFramework.IFrame"/> that is used.</param>
            <param name="measurement">The type of <see cref="T:TimeSeriesFramework.IMeasurement"/> to use."/&gt;</param>
        </member>
        <member name="M:TimeSeriesFramework.ConcentratorBase.OnProcessException(System.Exception)">
            <summary>
            Raises the <see cref="E:TimeSeriesFramework.ConcentratorBase.ProcessException"/> event.
            </summary>
            <param name="ex">Exception to send to <see cref="E:TimeSeriesFramework.ConcentratorBase.ProcessException"/> event.</param>
            <remarks>
            Allows derived classes to raise a processing exception.
            </remarks>
        </member>
        <member name="M:TimeSeriesFramework.ConcentratorBase.OnUnpublishedSamples(System.Int32)">
            <summary>
            Raises the <see cref="E:TimeSeriesFramework.ConcentratorBase.UnpublishedSamples"/> event.
            </summary>
            <param name="seconds">Total number of unpublished seconds of data.</param>
        </member>
        <member name="M:TimeSeriesFramework.ConcentratorBase.OnDiscardingMeasurements(System.Collections.Generic.IEnumerable{TimeSeriesFramework.IMeasurement})">
            <summary>
            Raises the <see cref="E:TimeSeriesFramework.ConcentratorBase.DiscardingMeasurements"/> event.
            </summary>
            <param name="measurements">Enumeration of <see cref="T:TimeSeriesFramework.IMeasurement"/> values being discarded.</param>
            <remarks>
            Allows derived classes to raise a discarding measurements event.
            </remarks>
        </member>
        <member name="E:TimeSeriesFramework.ConcentratorBase.UnpublishedSamples">
            <summary>
            This event is raised every 5 seconds allowing consumer to track current number of unpublished seconds of data in the queue.
            </summary>
            <remarks>
            <see cref="F:TVA.EventArgs`1.Argument"/> is the total number of unpublished seconds of data.
            </remarks>
        </member>
        <member name="E:TimeSeriesFramework.ConcentratorBase.ProcessException">
            <summary>
            This event is raised if there is an exception encountered while attempting to process a frame in the sample queue.
            </summary>
            <remarks>
            <para>
            <see cref="F:TVA.EventArgs`1.Argument"/> is the <see cref="T:System.Exception"/> encountered while parsing the data stream.
            </para>
            <para>
            Processing will not stop for any exceptions thrown by the user function, but any captured exceptions will be exposed through this event.
            </para>
            </remarks>
        </member>
        <member name="E:TimeSeriesFramework.ConcentratorBase.DiscardingMeasurements">
            <summary>
            This event is raised if there are any measurements being discarded during the sorting process.
            </summary>
            <remarks>
            <see cref="F:TVA.EventArgs`1.Argument"/> is the enumeration of <see cref="T:TimeSeriesFramework.IMeasurement"/> values that are being discarded during the sorting process.
            </remarks>
        </member>
        <member name="E:TimeSeriesFramework.ConcentratorBase.Disposed">
            <summary>
            This event is raised when <see cref="T:TimeSeriesFramework.ConcentratorBase"/> is disposed.
            </summary>
        </member>
        <member name="E:TimeSeriesFramework.ConcentratorBase.LagTimeUpdated">
            <summary>
            Raised, for the benefit of dependent classes, when lag time is updated.
            </summary> 
        </member>
        <member name="E:TimeSeriesFramework.ConcentratorBase.LeadTimeUpdated">
            <summary>
            Raised, for the benefit of dependent classes, when lead time is updated.
            </summary> 
        </member>
        <member name="P:TimeSeriesFramework.ConcentratorBase.LagTime">
            <summary>
            Gets or sets the allowed past time deviation tolerance, in seconds (can be subsecond).
            </summary>
            <remarks>
            <para>Defines the time sensitivity to past measurement timestamps.</para>
            <para>The number of seconds allowed before assuming a measurement timestamp is too old.</para>
            <para>This becomes the amount of delay introduced by the concentrator to allow time for data to flow into the system.</para>
            </remarks>
            <exception cref="T:System.ArgumentOutOfRangeException">LagTime must be greater than zero, but it can be less than one.</exception>
        </member>
        <member name="P:TimeSeriesFramework.ConcentratorBase.LagTicks">
            <summary>
            Gets defined past time deviation tolerance, in ticks.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.ConcentratorBase.LeadTime">
            <summary>
            Gets or sets the allowed future time deviation tolerance, in seconds (can be subsecond).
            </summary>
            <remarks>
            <para>Defines the time sensitivity to future measurement timestamps.</para>
            <para>The number of seconds allowed before assuming a measurement timestamp is too advanced.</para>
            <para>This becomes the tolerated +/- accuracy of the local clock to real-time.</para>
            </remarks>
            <exception cref="T:System.ArgumentOutOfRangeException">LeadTime must be greater than zero, but it can be less than one.</exception>
        </member>
        <member name="P:TimeSeriesFramework.ConcentratorBase.TrackLatestMeasurements">
            <summary>
            Gets or sets flag to start tracking the absolute latest received measurement values.
            </summary>
            <remarks>
            Lastest received measurement value will be available via the <see cref="P:TimeSeriesFramework.ConcentratorBase.LatestMeasurements"/> property.
            Note that enabling this option will slightly increase the required sorting time.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.ConcentratorBase.LatestMeasurements">
            <summary>
            Gets reference to the collection of absolute latest received measurement values.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.ConcentratorBase.LastFrame">
            <summary>
            Gets reference to the last published <see cref="T:TimeSeriesFramework.IFrame"/>.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.ConcentratorBase.UsePrecisionTimer">
            <summary>
            Gets or sets flag that determines if precision timer should be used for frame publication.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.ConcentratorBase.FramesPerSecond">
            <summary>
            Gets or sets the number of frames per second.
            </summary>
            <remarks>
            Valid frame rates for a <see cref="T:TimeSeriesFramework.ConcentratorBase"/> are greater than 0 frames per second.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.ConcentratorBase.ProcessingInterval">
            <summary>
            Gets or sets the desired processing interval, in milliseconds, for the adapter.
            </summary>
            <remarks>
            <para>
            This property is normally only used when you need the concentrator to send data at faster than real-time speeds,
            e.g., faster than the defined <see cref="P:TimeSeriesFramework.ConcentratorBase.FramesPerSecond"/>. A use case would be pushing historical data through
            the concentrator where you want to sort and publish data as quickly as possible.
            </para>
            <para>
            With the exception of the values of -1 and 0, this value specifies the desired processing interval for data, e.g.,
            a timer interval, overwhich to process data. A value of -1 means to use the default processing interval, i.e., use
            the <see cref="P:TimeSeriesFramework.ConcentratorBase.FramesPerSecond"/>, while a value of 0 means to process data as fast as possible.
            </para>
            <para>
            From a real-time perspective the <see cref="T:TimeSeriesFramework.ConcentratorBase"/> defines its general processing interval based on
            the defined <see cref="P:TimeSeriesFramework.ConcentratorBase.FramesPerSecond"/> property. The frames per second property, however, is more than a basic
            processing interval since it is used to define the intervals in one second that will become the time sorting
            destination "buckets" used by the concentrator irrespective of the data rate of the incoming data. As an example,
            if the frames per second of the concentrator is set to 30 and the source data rate is 60fps, then data will be
            downsampled to 30 frames of sorted incoming data but the assigned processing interval will be used to publish the
            frames at the specified rate.
            </para>
            <para>
            The implemented functionality of the process interval property will be to respond to values in the following way:
            <list type="table">
                <listheader>
                    <term>Value</term>
                    <description>Response</description>
                </listheader>
                <item>
                    <term>&lt; 0</term>
                    <description>
                    In this case the default processing interval has been requested, as a result the <see cref="P:TimeSeriesFramework.ConcentratorBase.ProcessByReceivedTimestamp"/>
                    will be set to <c>false</c> and the concentrator processing interval will be defined based on the currently defined
                    <see cref="P:TimeSeriesFramework.ConcentratorBase.FramesPerSecond"/> property, e.g., if the frames per second is 30 the processing interval will be 33.33ms.
                    </description>
                </item>
                <item>
                    <term>0</term>
                    <description>
                    In this case the processing interval has been defined to process data as fast as possible, as a result the
                    <see cref="P:TimeSeriesFramework.ConcentratorBase.ProcessByReceivedTimestamp"/> property will be set to <c>true</c> and <see cref="P:TimeSeriesFramework.ConcentratorBase.UsePrecisionTimer"/> property
                    will be set to <c>false</c>. With a processing interval of zero data is expected to flow into the concentrator as quick as
                    it can be provided. The <see cref="P:TimeSeriesFramework.ConcentratorBase.FramesPerSecond"/> property will still be used to sort data by time into appropriate
                    frames, but the concentrator will use the reception time of the measurements against the defined lag-time to make sure
                    needed data has arrived before publication and frames will be published at the same rate of data arrival.
                    </description>
                </item>
                <item>
                    <term>&gt; 0</term>
                    <description>
                    In this case a specific processing interval has been defined for processing data, as a result both the
                    <see cref="P:TimeSeriesFramework.ConcentratorBase.ProcessByReceivedTimestamp"/> and <see cref="P:TimeSeriesFramework.ConcentratorBase.UsePrecisionTimer"/> properties will be set to <c>true</c>. With
                    a specifically defined processing interval, data is expected to flow into the concentrator at a similar rate. The
                    <see cref="P:TimeSeriesFramework.ConcentratorBase.FramesPerSecond"/> property will still be used to sort data by time into appropriate frames, but the concentrator
                    will use the reception time of the measurements against the defined lag-time to make sure needed data has arrived before
                    publication and frames will be published on the specified interval. If multiple frames are ready for publication when the
                    processing interval executes, then all the ready frames will be published sequentially as quickly as possible.
                    </description>
                </item>
            </list>
            </para>
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.ConcentratorBase.MaximumPublicationTimeout">
            <summary>
            Gets or sets the maximum frame publication timeout in milliseconds, set to <see cref="F:System.Threading.Timeout.Infinite"/>(-1) to wait indefinitely.
            </summary>
            <remarks>
            <para>
            The concentrator automatically defines a precision timer to provide the heatbeat for frame publication, however if the system
            gets busy the heartbeat signals can be missed. This property defines a maximum wait timeout before reception of the heartbeat
            signal to make sure frame publications continue to occur in a timely fashion even when a system is under stress.
            </para>
            <para>
            This property is automatically defined as 2% more than the number of milliseconds per frame when the <see cref="P:TimeSeriesFramework.ConcentratorBase.FramesPerSecond"/>
            property is set. Users can override this default value to provide custom behavior for this timeout.
            </para>
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.ConcentratorBase.ExternalEventHandles">
            <summary>
            Gets or sets collection of <see cref="T:System.Threading.AutoResetEvent"/> wait handles used to synchronize concentration publication with external events.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.ConcentratorBase.ExternalEventTimeout">
            <summary>
            Gets or sets maximum to time to wait, in milliseconds, for external events before publishing proceeds.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.ConcentratorBase.TimeResolution">
            <summary>
            Gets or sets the maximum time resolution, in ticks, to use when sorting measurements by timestamps into their proper destination frame.
            </summary>
            <remarks>
            <list type="table">
                <listheader>
                    <term>Desired maximum resolution</term>
                    <description>Value to assign</description>
                </listheader>
                <item>
                    <term>Seconds</term>
                    <description><see cref="T:TVA.Ticks"/>.<see cref="F:TVA.Ticks.PerSecond"/></description>
                </item>
                <item>
                    <term>Milliseconds</term>
                    <description><see cref="T:TVA.Ticks"/>.<see cref="F:TVA.Ticks.PerMillisecond"/></description>
                </item>
                <item>
                    <term>Microseconds</term>
                    <description><see cref="T:TVA.Ticks"/>.<see cref="F:TVA.Ticks.PerMicrosecond"/></description>
                </item>
                <item>
                    <term>100-Nanoseconds</term>
                    <description>0</description>
                </item>
            </list>
            Assigning values less than zero will be set to zero since minimum possible concentrator resolution is one tick (100-nanoseconds). Assigning
            values values greater than <see cref="T:TVA.Ticks"/>.<see cref="F:TVA.Ticks.PerSecond"/> will be set to <see cref="T:TVA.Ticks"/>.<see cref="F:TVA.Ticks.PerSecond"/>
            since maximum possible concentrator resolution is one second (i.e., 1 frame per second).
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.ConcentratorBase.DownsamplingMethod">
            <summary>
            Gets or sets the <see cref="T:TimeSeriesFramework.DownsamplingMethod"/> to be used by the concentrator.
            </summary>
            <remarks>
            The downsampling method determines the algorithm to use if input is being received at a higher-resolution than the defined output.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.ConcentratorBase.TicksPerFrame">
            <summary>
            Gets the number of ticks per frame.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.ConcentratorBase.ExpectedMeasurements">
            <summary>
            Gets or sets the expected number of measurements to be assigned to a single frame.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.ConcentratorBase.AllowPreemptivePublishing">
            <summary>
            Gets or sets flag that allows system to preemptively publish frames assuming all <see cref="P:TimeSeriesFramework.ConcentratorBase.ExpectedMeasurements"/> have arrived.
            </summary>
            <remarks>
            In order for this property to used, the <see cref="P:TimeSeriesFramework.ConcentratorBase.ExpectedMeasurements"/> must be defined.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.ConcentratorBase.PerformTimestampReasonabilityCheck">
            <summary>
            Gets or sets flag that determines if timestamp reasonability checks should be performed on incoming
            measurements (i.e., measurement timestamps are compared to system clock for reasonability using
            <see cref="P:TimeSeriesFramework.ConcentratorBase.LeadTime"/> tolerance).
            </summary>
            <remarks>
            Setting this value to <c>false</c> will make the concentrator use the latest value received as "real-time"
            without validation; this is not recommended in production since time reported by source devices may
            be grossly incorrect. For non-production configurations, setting this value to false will allow
            concentration of historical data.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.ConcentratorBase.ProcessByReceivedTimestamp">
            <summary>
            Gets or sets flag that determines if concentrator should sort measurements by received time.
            </summary>
            <remarks>
            <para>
            Setting this value to <c>true</c> will make concentrator use the timestamp of measurement
            reception, which is typically the <see cref="T:TimeSeriesFramework.IMeasurement"/> creation time, for sorting and
            publication. This is useful in scenarios where the concentrator will be receiving very large
            volumes of data but not necessarily in real-time, such as, reading values from a file where
            you want data to be sorted and processed as fast as possible.
            </para>
            <para>
            Setting this value to <c>true</c> will force <see cref="P:TimeSeriesFramework.ConcentratorBase.UseLocalClockAsRealTime"/> to be <c>true</c>
            and <see cref="P:TimeSeriesFramework.ConcentratorBase.AllowSortsByArrival"/> to be <c>false</c>.
            </para>
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.ConcentratorBase.TrackPublishedTimestamp">
            <summary>
            Gets or sets flag that determines if system should track timestamp of publication for all frames and measurements.
            </summary>
            <remarks>
            Setting this value to <c>true</c> will cause the concentrator to mark the timestamp of publication in each
            <see cref="P:TimeSeriesFramework.IFrame.PublishedTimestamp"/> and its measurement's <see cref="P:TimeSeriesFramework.IMeasurement.PublishedTimestamp"/>.
            Since this is extra processing time that may not be needed except in cases of calculating statistics for
            system performance, this must be explicitly enabled.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.ConcentratorBase.Enabled">
            <summary>
            Gets or sets the current enabled state of concentrator.
            </summary>
            <returns>Current enabled state of concentrator</returns>
            <remarks>
            Concentrator must be started by calling <see cref="M:TimeSeriesFramework.ConcentratorBase.Start"/> method or setting
            <c><see cref="P:TimeSeriesFramework.ConcentratorBase.Enabled"/> = true</c>) before concentration will begin.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.ConcentratorBase.StartTime">
            <summary>
            Gets the UTC time the concentrator was started.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.ConcentratorBase.StopTime">
            <summary>
            Gets the UTC time the concentrator was stopped.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.ConcentratorBase.RunTime">
            <summary>
            Gets the total amount of time, in seconds, that the concentrator has been active.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.ConcentratorBase.IgnoreBadTimestamps">
            <summary>
            Gets or sets flag that determines if bad timestamps (as determined by measurement's timestamp quality)
            should be ignored when sorting measurements.
            </summary>
            <remarks>
            Setting this property to <c>true</c> forces system to use timestamps as-is without checking quality.
            If this property is <c>true</c>, it will supercede operation of <see cref="P:TimeSeriesFramework.ConcentratorBase.AllowSortsByArrival"/>.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.ConcentratorBase.AllowSortsByArrival">
            <summary>
            Gets or sets flag that determines whether or not to allow incoming measurements with bad timestamps
            to be sorted by arrival time.
            </summary>
            <remarks>
            <para>
            Value defaults to <c>true</c>, so any incoming measurement with a bad timestamp quality will be sorted
            according to its arrival time. Setting the property to <c>false</c> will cause all measurements with a
            bad timestamp quality to be discarded. This property will only be considered when
            <see cref="P:TimeSeriesFramework.ConcentratorBase.IgnoreBadTimestamps"/> is <c>false</c>.
            </para>
            <para>
            Value will be forced to <c>false</c> if <see cref="P:TimeSeriesFramework.ConcentratorBase.ProcessByReceivedTimestamp"/> is <c>true</c>.
            </para>
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.ConcentratorBase.UseLocalClockAsRealTime">
            <summary>
            Gets or sets flag that determines whether or not to use the local clock time as real-time.
            </summary>
            <remarks>
            <para>
            Use your local system clock as real-time only if the time is locally GPS-synchronized,
            or if the measurement values being sorted were not measured relative to a GPS-synchronized clock.
            </para>
            <para>
            If <see cref="P:TimeSeriesFramework.ConcentratorBase.ProcessByReceivedTimestamp"/> is <c>true</c>, <see cref="P:TimeSeriesFramework.ConcentratorBase.UseLocalClockAsRealTime"/> will
            always be set to <c>true</c>, even if you try to set it to <c>false</c>.
            </para>
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.ConcentratorBase.RealTime">
            <summary>
            Gets the the most accurate time value that is available. If <see cref="P:TimeSeriesFramework.ConcentratorBase.UseLocalClockAsRealTime"/> = <c>true</c>, then
            this function will return <see cref="P:System.DateTime.UtcNow"/>. Otherwise, this function will return the timestamp of the
            most recent measurement, or <see cref="P:System.DateTime.UtcNow"/> if no measurement timestamps are within time deviation
            tolerances as specified by the <see cref="P:TimeSeriesFramework.ConcentratorBase.LeadTime"/> value.
            </summary>
            <remarks>
            Because the measurements being received by remote devices are often measured relative to GPS time, these timestamps
            are typically more accurate than the local clock. As a result, we can use the latest received timestamp as the best
            local time measurement we have (ignoring transmission delays); but, even these times can be incorrect so we still have
            to apply reasonability checks to these times. To do this, we use the local system time and the <see cref="P:TimeSeriesFramework.ConcentratorBase.LeadTime"/>
            value to validate the latest measured timestamp. If the newest received measurement timestamp gets too old or creeps
            too far into the future (both validated + and - against defined lead time property value), we will fall back on local
            system time. Note that this creates a dependency on a fairly accurate local clock - the smaller the lead time deviation
            tolerance, the better the needed local clock accuracy. For example, a lead time deviation tolerance of a few seconds
            might only require keeping the local clock synchronized to an NTP time source; but, a sub-second tolerance would
            require that the local clock be very close to GPS time.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.ConcentratorBase.ReceivedMeasurements">
            <summary>
            Gets the total number of measurements ever requested for sorting.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.ConcentratorBase.ProcessedMeasurements">
            <summary>
            Gets the total number of measurements successfully sorted.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.ConcentratorBase.DiscardedMeasurements">
            <summary>
            Gets the total number of measurements that have been discarded because of old timestamps
            (i.e., measurements that were outside the time deviation tolerance from base time, past or future).
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.ConcentratorBase.LastDiscardedMeasurement">
            <summary>
            Gets a reference the last <see cref="T:TimeSeriesFramework.IMeasurement"/> that was discarded by the concentrator.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.ConcentratorBase.LastDiscardedMeasurementLatency">
            <summary>
            Gets the calculated latency of the last <see cref="T:TimeSeriesFramework.IMeasurement"/> that was discarded by the concentrator.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.ConcentratorBase.PublishedMeasurements">
            <summary>
            Gets the total number of published measurements.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.ConcentratorBase.PublishedFrames">
            <summary>
            Gets the total number of published frames.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.ConcentratorBase.MeasurementsSortedByArrival">
            <summary>
            Gets the total number of measurements that were sorted by arrival because the measurement reported a bad timestamp quality.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.ConcentratorBase.DownsampledMeasurements">
            <summary>
            Gets the total number of downsampled measurements processed by the concentrator.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.ConcentratorBase.MissedSortsByTimeout">
            <summary>
            Gets the total number of missed sorts by timeout processed by the concentrator.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.ConcentratorBase.WaitHandleExpirations">
            <summary>
            Gets the total number of wait handle expirations encounted due to delayed precision timer releases.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.ConcentratorBase.FramesAheadOfSchedule">
            <summary>
            Gets the total number of frames ahead of schedule processed by the concentrator.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.ConcentratorBase.TotalPublicationTime">
            <summary>
            Gets the total number of seconds frames have spent in the publication process since concentrator started.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.ConcentratorBase.AveragePublicationTimePerFrame">
            <summary>
            Gets the average required frame publication time, in seconds.
            </summary>
            <remarks>
            If user publication function, <see cref="M:TimeSeriesFramework.ConcentratorBase.PublishFrame(TimeSeriesFramework.IFrame,System.Int32)"/>, consistently exceeds available publishing time
            (i.e., <c>1 / <see cref="P:TimeSeriesFramework.ConcentratorBase.FramesPerSecond"/></c>), concentration will fall behind.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.ConcentratorBase.QueueState">
            <summary>
            Gets detailed state of concentrator frame queue.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.ConcentratorBase.Status">
            <summary>
            Gets current detailed state and status of concentrator for display purposes.
            </summary>
        </member>
        <member name="T:TimeSeriesFramework.ConcentratorBase.FrameRateTimer">
            <summary>
            Frame rate timer.
            </summary>
            <remarks>
            One static instance of this internal class is created per encountered frame rate / processing interval.
            </remarks>
        </member>
        <member name="M:TimeSeriesFramework.ConcentratorBase.FrameRateTimer.#ctor(System.Int32,System.Int32)">
            <summary>
            Create a new <see cref="T:TimeSeriesFramework.ConcentratorBase.FrameRateTimer"/> class.
            </summary>
            <param name="framesPerSecond">Desired frame rate for <see cref="T:TVA.PrecisionTimer"/>.</param>
            <param name="processingInterval">Desired processing interval, if applicable.</param>
            <remarks>
            When the <paramref name="processingInterval"/> is set to -1, the frame rate timer interval will be calculated as a distribution
            of whole milliseonds over the specified number of <paramref name="framesPerSecond"/>. Otherwise the specified
            <paramref name="processingInterval"/> will be used as the timer interval.
            </remarks>
        </member>
        <member name="M:TimeSeriesFramework.ConcentratorBase.FrameRateTimer.Finalize">
            <summary>
            Releases the unmanaged resources before the <see cref="T:TimeSeriesFramework.ConcentratorBase.FrameRateTimer"/> object is reclaimed by <see cref="T:System.GC"/>.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.ConcentratorBase.FrameRateTimer.Dispose">
            <summary>
            Releases all the resources used by the <see cref="T:TimeSeriesFramework.ConcentratorBase.FrameRateTimer"/> object.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.ConcentratorBase.FrameRateTimer.Dispose(System.Boolean)">
            <summary>
            Releases the unmanaged resources used by the <see cref="T:TimeSeriesFramework.ConcentratorBase.FrameRateTimer"/> object and optionally releases the managed resources.
            </summary>
            <param name="disposing">true to release both managed and unmanaged resources; false to release only unmanaged resources.</param>
        </member>
        <member name="M:TimeSeriesFramework.ConcentratorBase.FrameRateTimer.AddReference(System.EventHandler)">
            <summary>
            Adds a reference to this <see cref="T:TimeSeriesFramework.ConcentratorBase.FrameRateTimer"/>.
            </summary>
            <param name="tickFunction">Tick function to add to event list.</param>
        </member>
        <member name="M:TimeSeriesFramework.ConcentratorBase.FrameRateTimer.RemoveReference(System.EventHandler)">
            <summary>
            Removes a reference to this <see cref="T:TimeSeriesFramework.ConcentratorBase.FrameRateTimer"/>.
            </summary>
            <param name="tickFunction">Tick function to remove from event list.</param>
        </member>
        <member name="P:TimeSeriesFramework.ConcentratorBase.FrameRateTimer.FramesPerSecond">
            <summary>
            Gets frames per second for this <see cref="T:TimeSeriesFramework.ConcentratorBase.FrameRateTimer"/>.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.ConcentratorBase.FrameRateTimer.ProcessingInterval">
            <summary>
            Gets the processing interval defined for the <see cref="T:TimeSeriesFramework.ConcentratorBase.FrameRateTimer"/>.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.ConcentratorBase.FrameRateTimer.ReferenceCount">
            <summary>
            Gets reference count for this <see cref="T:TimeSeriesFramework.ConcentratorBase.FrameRateTimer"/>.
            </summary>
        </member>
        <member name="T:TimeSeriesFramework.Frame">
            <summary>
            Implementation of a basic <see cref="T:TimeSeriesFramework.IFrame"/>.
            </summary>
            <remarks>
            A frame represents a collection of measurements at a given time.
            </remarks>
        </member>
        <member name="T:TimeSeriesFramework.IFrame">
            <summary>
            Abstract frame interface representing a collection of measurements at an exact moment in time.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.IFrame.Measurements">
            <summary>
            Keyed measurements in this <see cref="T:TimeSeriesFramework.IFrame"/>.
            </summary>
            <remarks>
            Represents a concurrent dictionary of measurements, keyed by <see cref="T:TimeSeriesFramework.MeasurementKey"/>.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.IFrame.Published">
            <summary>
            Gets or sets published state of this <see cref="T:TimeSeriesFramework.IFrame"/> (pre-processing).
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.IFrame.SortedMeasurements">
            <summary>
            Gets or sets total number of measurements that have been sorted into this <see cref="T:TimeSeriesFramework.IFrame"/>.
            </summary>
            <remarks>
            If this property has not been assigned a value, implementors should return measurement count.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.IFrame.Timestamp">
            <summary>
            Gets or sets exact timestamp, in <see cref="T:TVA.Ticks"/>, of the data represented in this <see cref="T:TimeSeriesFramework.IFrame"/>.
            </summary>
            <remarks>
            The value of this property represents the number of 100-nanosecond intervals that have elapsed since 12:00:00 midnight, January 1, 0001.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.IFrame.ReceivedTimestamp">
            <summary>
            Gets or sets exact timestamp, in ticks, of when this <see cref="T:TimeSeriesFramework.IMeasurement"/> was received (i.e., created).
            </summary>
            <remarks>
            <para>Implementors should set this timestamp to be the ticks of <see cref="P:TVA.PrecisionTimer.UtcNow"/> of when this class was created.</para>
            <para>The value of this property represents the number of 100-nanosecond intervals that have elapsed since 12:00:00 midnight, January 1, 0001.</para>
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.IFrame.PublishedTimestamp">
            <summary>
            Gets or sets exact timestamp, in ticks, of when this <see cref="T:TimeSeriesFramework.IMeasurement"/> was published (post-processing).
            </summary>
            <remarks>
            <para>Implementors should update all associated <see cref="P:TimeSeriesFramework.IMeasurement.PublishedTimestamp"/> values when setting this property.</para>
            <para>The value of this property represents the number of 100-nanosecond intervals that have elapsed since 12:00:00 midnight, January 1, 0001.</para>
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.IFrame.LastSortedMeasurement">
            <summary>
            Gets ot sets reference to last <see cref="T:TimeSeriesFramework.IMeasurement"/> that was sorted into this <see cref="T:TimeSeriesFramework.IFrame"/>.
            </summary>
            <remarks>
            <para>This value is used to help monitor slow moving measurements that are being sorted into the <see cref="T:TimeSeriesFramework.IFrame"/>.</para>
            <para>Implementors need only track the value.</para>
            </remarks>
        </member>
        <member name="M:TimeSeriesFramework.Frame.#ctor(TVA.Ticks,System.Int32)">
            <summary>
            Constructs a new <see cref="T:TimeSeriesFramework.Frame"/> given the specified parameters.
            </summary>
            <param name="timestamp">Timestamp, in ticks, for this <see cref="T:TimeSeriesFramework.Frame"/>.</param>
            <param name="expectedMeasurements">Expected number of measurements for the <see cref="T:TimeSeriesFramework.Frame"/>.</param>
        </member>
        <member name="M:TimeSeriesFramework.Frame.#ctor(TVA.Ticks,System.Collections.Generic.IDictionary{TimeSeriesFramework.MeasurementKey,TimeSeriesFramework.IMeasurement})">
            <summary>
            Constructs a new <see cref="T:TimeSeriesFramework.Frame"/> given the specified parameters.
            </summary>
            <param name="timestamp">Timestamp, in ticks, for this <see cref="T:TimeSeriesFramework.Frame"/>.</param>
            <param name="measurements">Initial set of measurements to load into the <see cref="T:TimeSeriesFramework.Frame"/>, if any.</param>
        </member>
        <member name="M:TimeSeriesFramework.Frame.Clone">
            <summary>
            Create a copy of this <see cref="T:TimeSeriesFramework.Frame"/> and its measurements.
            </summary>
            <remarks>
            The measurement dictionary of this <see cref="T:TimeSeriesFramework.Frame"/> is synclocked during copy.
            </remarks>
            <returns>A cloned <see cref="T:TimeSeriesFramework.Frame"/>.</returns>
        </member>
        <member name="M:TimeSeriesFramework.Frame.Equals(TimeSeriesFramework.IFrame)">
            <summary>
            Determines whether the specified <see cref="T:TimeSeriesFramework.IFrame"/> is equal to the current <see cref="T:TimeSeriesFramework.Frame"/>.
            </summary>
            <param name="other">The <see cref="T:TimeSeriesFramework.IFrame"/> to compare with the current <see cref="T:TimeSeriesFramework.Frame"/>.</param>
            <returns>
            true if the specified <see cref="T:TimeSeriesFramework.IFrame"/> is equal to the current <see cref="T:TimeSeriesFramework.Frame"/>;
            otherwise, false.
            </returns>
        </member>
        <member name="M:TimeSeriesFramework.Frame.Equals(System.Object)">
            <summary>
            Determines whether the specified <see cref="T:System.Object"/> is equal to the current <see cref="T:TimeSeriesFramework.Frame"/>.
            </summary>
            <param name="obj">The <see cref="T:System.Object"/> to compare with the current <see cref="T:TimeSeriesFramework.Frame"/>.</param>
            <returns>
            true if the specified <see cref="T:System.Object"/> is equal to the current <see cref="T:TimeSeriesFramework.Frame"/>;
            otherwise, false.
            </returns>
        </member>
        <member name="M:TimeSeriesFramework.Frame.CompareTo(TimeSeriesFramework.IFrame)">
            <summary>
            Compares the <see cref="T:TimeSeriesFramework.Frame"/> with an <see cref="T:TimeSeriesFramework.IFrame"/>.
            </summary>
            <param name="other">The <see cref="T:TimeSeriesFramework.IFrame"/> to compare with the current <see cref="T:TimeSeriesFramework.Frame"/>.</param>
            <returns>A 32-bit signed integer that indicates the relative order of the objects being compared.</returns>
            <remarks>This implementation of a basic frame compares itself by timestamp.</remarks>
        </member>
        <member name="M:TimeSeriesFramework.Frame.CompareTo(System.Object)">
            <summary>
            Compares the <see cref="T:TimeSeriesFramework.Frame"/> with the specified <see cref="T:System.Object"/>.
            </summary>
            <param name="obj">The <see cref="T:System.Object"/> to compare with the current <see cref="T:TimeSeriesFramework.Frame"/>.</param>
            <returns>A 32-bit signed integer that indicates the relative order of the objects being compared.</returns>
            <exception cref="T:System.ArgumentException"><paramref name="obj"/> is not an <see cref="T:TimeSeriesFramework.IFrame"/>.</exception>
            <remarks>This implementation of a basic frame compares itself by timestamp.</remarks>
        </member>
        <member name="M:TimeSeriesFramework.Frame.GetHashCode">
            <summary>
            Serves as a hash function for the current <see cref="T:TimeSeriesFramework.Frame"/>.
            </summary>
            <returns>A hash code for the current <see cref="T:TimeSeriesFramework.Frame"/>.</returns>
            <remarks>Hash code based on timestamp of frame.</remarks>
        </member>
        <member name="M:TimeSeriesFramework.Frame.op_Equality(TimeSeriesFramework.Frame,TimeSeriesFramework.Frame)">
            <summary>
            Compares two <see cref="T:TimeSeriesFramework.Frame"/> timestamps for equality.
            </summary>
            <param name="frame1">The <see cref="T:TimeSeriesFramework.Frame"/> left hand operand.</param>
            <param name="frame2">The <see cref="T:TimeSeriesFramework.Frame"/> right hand operand.</param>
            <returns>A <see cref="T:System.Boolean"/> representing the result of the operation.</returns>
        </member>
        <member name="M:TimeSeriesFramework.Frame.op_Inequality(TimeSeriesFramework.Frame,TimeSeriesFramework.Frame)">
            <summary>
            Compares two <see cref="T:TimeSeriesFramework.Frame"/> timestamps for inequality.
            </summary>
            <param name="frame1">The <see cref="T:TimeSeriesFramework.Frame"/> left hand operand.</param>
            <param name="frame2">The <see cref="T:TimeSeriesFramework.Frame"/> right hand operand.</param>
            <returns>A <see cref="T:System.Boolean"/> representing the result of the operation.</returns>
        </member>
        <member name="M:TimeSeriesFramework.Frame.op_GreaterThan(TimeSeriesFramework.Frame,TimeSeriesFramework.Frame)">
            <summary>
            Returns true if left <see cref="T:TimeSeriesFramework.Frame"/> timestamp is greater than right <see cref="T:TimeSeriesFramework.Frame"/> timestamp.
            </summary>
            <param name="frame1">The <see cref="T:TimeSeriesFramework.Frame"/> left hand operand.</param>
            <param name="frame2">The <see cref="T:TimeSeriesFramework.Frame"/> right hand operand.</param>
            <returns>A <see cref="T:System.Boolean"/> representing the result of the operation.</returns>
        </member>
        <member name="M:TimeSeriesFramework.Frame.op_GreaterThanOrEqual(TimeSeriesFramework.Frame,TimeSeriesFramework.Frame)">
            <summary>
            Returns true if left <see cref="T:TimeSeriesFramework.Frame"/> timestamp is greater than or equal to right <see cref="T:TimeSeriesFramework.Frame"/> timestamp.
            </summary>
            <param name="frame1">The <see cref="T:TimeSeriesFramework.Frame"/> left hand operand.</param>
            <param name="frame2">The <see cref="T:TimeSeriesFramework.Frame"/> right hand operand.</param>
            <returns>A <see cref="T:System.Boolean"/> representing the result of the operation.</returns>
        </member>
        <member name="M:TimeSeriesFramework.Frame.op_LessThan(TimeSeriesFramework.Frame,TimeSeriesFramework.Frame)">
            <summary>
            Returns true if left <see cref="T:TimeSeriesFramework.Frame"/> timestamp is less than right <see cref="T:TimeSeriesFramework.Frame"/> timestamp.
            </summary>
            <param name="frame1">The <see cref="T:TimeSeriesFramework.Frame"/> left hand operand.</param>
            <param name="frame2">The <see cref="T:TimeSeriesFramework.Frame"/> right hand operand.</param>
            <returns>A <see cref="T:System.Boolean"/> representing the result of the operation.</returns>
        </member>
        <member name="M:TimeSeriesFramework.Frame.op_LessThanOrEqual(TimeSeriesFramework.Frame,TimeSeriesFramework.Frame)">
            <summary>
            Returns true if left <see cref="T:TimeSeriesFramework.Frame"/> timestamp is less than or equal to right <see cref="T:TimeSeriesFramework.Frame"/> timestamp.
            </summary>
            <param name="frame1">The <see cref="T:TimeSeriesFramework.Frame"/> left hand operand.</param>
            <param name="frame2">The <see cref="T:TimeSeriesFramework.Frame"/> right hand operand.</param>
            <returns>A <see cref="T:System.Boolean"/> representing the result of the operation.</returns>
        </member>
        <member name="P:TimeSeriesFramework.Frame.Measurements">
            <summary>
            Keyed measurements in this <see cref="T:TimeSeriesFramework.Frame"/>.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Frame.Published">
            <summary>
            Gets or sets published state of this <see cref="T:TimeSeriesFramework.Frame"/> (pre-processing).
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Frame.SortedMeasurements">
            <summary>
            Gets or sets total number of measurements that have been sorted into this <see cref="T:TimeSeriesFramework.Frame"/>.
            </summary>
            <remarks>
            If this property has not been assigned a value, the property will return measurement count.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.Frame.Timestamp">
            <summary>
            Gets or sets exact timestamp, in <see cref="T:TVA.Ticks"/>, of the data represented in this <see cref="T:TimeSeriesFramework.Frame"/>.
            </summary>
            <remarks>
            The value of this property represents the number of 100-nanosecond intervals that have elapsed since 12:00:00 midnight, January 1, 0001.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.Frame.ReceivedTimestamp">
            <summary>
            Gets or sets exact timestamp, in ticks, of when this <see cref="T:TimeSeriesFramework.Frame"/> was received (i.e., created).
            </summary>
            <remarks>
            <para>In the default implementation, this timestamp will simply be the ticks of <see cref="P:TVA.PrecisionTimer.UtcNow"/> of when this class was created.</para>
            <para>The value of this property represents the number of 100-nanosecond intervals that have elapsed since 12:00:00 midnight, January 1, 0001.</para>
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.Frame.PublishedTimestamp">
            <summary>
            Gets or sets exact timestamp, in ticks, of when this <see cref="T:TimeSeriesFramework.Frame"/> was published (post-processing).
            </summary>
            <remarks>
            <para>In the default implementation, setting this property will update all associated <see cref="P:TimeSeriesFramework.IMeasurement.PublishedTimestamp"/>.</para>
            <para>The value of this property represents the number of 100-nanosecond intervals that have elapsed since 12:00:00 midnight, January 1, 0001.</para>
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.Frame.LastSortedMeasurement">
            <summary>
            Gets or sets reference to last measurement that was sorted into this <see cref="T:TimeSeriesFramework.Frame"/>.
            </summary>
        </member>
        <member name="T:TimeSeriesFramework.FrameQueue">
            <summary>
            Represents a real-time queue of <see cref="T:TimeSeriesFramework.TrackingFrame"/> instances used by the <see cref="T:TimeSeriesFramework.ConcentratorBase"/> class.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.FrameQueue.#ctor(TimeSeriesFramework.FrameQueue.CreateNewFrameFunction)">
            <summary>
            Creates a new <see cref="T:TimeSeriesFramework.FrameQueue"/>.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.FrameQueue.Finalize">
            <summary>
            Releases the unmanaged resources before the <see cref="T:TimeSeriesFramework.FrameQueue"/> object is reclaimed by <see cref="T:System.GC"/>.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.FrameQueue.Dispose">
            <summary>
            Releases all the resources used by the <see cref="T:TimeSeriesFramework.FrameQueue"/> object.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.FrameQueue.Dispose(System.Boolean)">
            <summary>
            Releases the unmanaged resources used by the <see cref="T:TimeSeriesFramework.FrameQueue"/> object and optionally releases the managed resources.
            </summary>
            <param name="disposing">true to release both managed and unmanaged resources; false to release only unmanaged resources.</param>
        </member>
        <member name="M:TimeSeriesFramework.FrameQueue.ExamineQueueState(System.Int32)">
            <summary>
            Examines and returns the status of the <see cref="T:TimeSeriesFramework.FrameQueue"/>.
            </summary>
            <param name="expectedMeasurements">Number of expected measurements per frame.</param>
        </member>
        <member name="M:TimeSeriesFramework.FrameQueue.Clear">
            <summary>
            Clears the <see cref="T:TimeSeriesFramework.FrameQueue"/>.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.FrameQueue.Pop">
            <summary>
            Removes current <see cref="P:TimeSeriesFramework.FrameQueue.Head"/> frame from the <see cref="T:TimeSeriesFramework.FrameQueue"/> after it has been processed and assigns a new <see cref="P:TimeSeriesFramework.FrameQueue.Head"/>.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.FrameQueue.GetFrame(System.Int64)">
            <summary>
            Gets <see cref="T:TimeSeriesFramework.TrackingFrame"/> from the queue with the specified timestamp, in ticks.  If no frame exists for
            the specified timestamp, one will be created.
            </summary>
            <param name="ticks">Timestamp, in ticks, for which to get or create <see cref="T:TimeSeriesFramework.TrackingFrame"/>.</param>
            <remarks>
            Ticks can be any point in time so long time requested is greater than time of last published frame; this queue is
            used in a real-time scenario with time moving forward.  If a frame is requested for an old timestamp, null will
            be returned. Note that frame returned will be "best-fit" for given timestamp based on <see cref="P:TimeSeriesFramework.FrameQueue.FramesPerSecond"/>.
            </remarks>
            <returns>An existing or new <see cref="T:TimeSeriesFramework.TrackingFrame"/> from the queue for the specified timestamp.</returns>
        </member>
        <member name="P:TimeSeriesFramework.FrameQueue.FramesPerSecond">
            <summary>
            Gets or sets the number of frames per second to be used by <see cref="T:TimeSeriesFramework.FrameQueue"/>.
            </summary>
            <remarks>
            Valid frame rates are greater than 0 frames per second.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.FrameQueue.TimeResolution">
            <summary>
            Gets or sets the maximum time resolution to use when sorting measurements by timestamps into their proper destination frame.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.FrameQueue.DownsamplingMethod">
            <summary>
            Gets or sets the <see cref="T:TimeSeriesFramework.DownsamplingMethod"/> to be used by the <see cref="T:TimeSeriesFramework.FrameQueue"/>.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.FrameQueue.Head">
            <summary>
            Returns the next <see cref="T:TimeSeriesFramework.TrackingFrame"/> in the <see cref="T:TimeSeriesFramework.FrameQueue"/>, if any.
            </summary>
            <remarks>
            This property is tracked separately from the internal frame collection, as a
            result this property may be called at any time without a locking penalty.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.FrameQueue.Last">
            <summary>
            Gets the last processed <see cref="T:TimeSeriesFramework.TrackingFrame"/> in the <see cref="T:TimeSeriesFramework.FrameQueue"/>.
            </summary>
            <remarks>
            This property is tracked separately from the internal frame collection, as a
            result this property may be called at any time without a locking penalty.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.FrameQueue.Count">
            <summary>
            Returns the total number of frames in the <see cref="T:TimeSeriesFramework.FrameQueue"/>.
            </summary>
        </member>
        <member name="T:TimeSeriesFramework.MeasurementValueFilterFunction">
            <summary>
            Method signature for function used to apply a value filter over a sequence of <see cref="T:TimeSeriesFramework.IMeasurement"/> values.
            </summary>
            <param name="source">Sequence of <see cref="T:TimeSeriesFramework.IMeasurement"/> values over which to apply filter.</param>
            <returns>Result of filter applied to sequence of <see cref="T:TimeSeriesFramework.IMeasurement"/> values.</returns>
        </member>
        <member name="T:TimeSeriesFramework.MeasurementStateFlags">
            <summary>
            Measurement state flags.
            </summary>
        </member>
        <member name="F:TimeSeriesFramework.MeasurementStateFlags.Normal">
            <summary>
            Defines normal state.
            </summary>
        </member>
        <member name="F:TimeSeriesFramework.MeasurementStateFlags.BadData">
            <summary>
            Defines bad data state.
            </summary>
        </member>
        <member name="F:TimeSeriesFramework.MeasurementStateFlags.SuspectData">
            <summary>
            Defines suspect data state.
            </summary>
        </member>
        <member name="F:TimeSeriesFramework.MeasurementStateFlags.OverRangeError">
            <summary>
            Defines over range error, i.e., unreasonable high value.
            </summary>
        </member>
        <member name="F:TimeSeriesFramework.MeasurementStateFlags.UnderRangeError">
            <summary>
            Defines under range error, i.e., unreasonable low value.
            </summary>
        </member>
        <member name="F:TimeSeriesFramework.MeasurementStateFlags.AlarmHigh">
            <summary>
            Defines alarm for high value.
            </summary>
        </member>
        <member name="F:TimeSeriesFramework.MeasurementStateFlags.AlarmLow">
            <summary>
            Defines alarm for low value.
            </summary>
        </member>
        <member name="F:TimeSeriesFramework.MeasurementStateFlags.WarningHigh">
            <summary>
            Defines warning for high value.
            </summary>
        </member>
        <member name="F:TimeSeriesFramework.MeasurementStateFlags.WarningLow">
            <summary>
            Defines warning for low value.
            </summary>
        </member>
        <member name="F:TimeSeriesFramework.MeasurementStateFlags.FlatlineAlarm">
            <summary>
            Defines alarm for flat-lined value, i.e., latched value test alarm.
            </summary>
        </member>
        <member name="F:TimeSeriesFramework.MeasurementStateFlags.ComparisonAlarm">
            <summary>
            Defines comparision alarm, i.e., outside threshold of comparison with a real-time value.
            </summary>
        </member>
        <member name="F:TimeSeriesFramework.MeasurementStateFlags.ROCAlarm">
            <summary>
            Defines rate-of-change alarm.
            </summary>
        </member>
        <member name="F:TimeSeriesFramework.MeasurementStateFlags.ReceivedAsBad">
            <summary>
            Defines bad value received.
            </summary>
        </member>
        <member name="F:TimeSeriesFramework.MeasurementStateFlags.CalcuatedValue">
            <summary>
            Defines calculated value state.
            </summary>
        </member>
        <member name="F:TimeSeriesFramework.MeasurementStateFlags.CalculationError">
            <summary>
            Defines calculation error with the value.
            </summary>
        </member>
        <member name="F:TimeSeriesFramework.MeasurementStateFlags.CalculationWarning">
            <summary>
            Defines calculation warning with the value.
            </summary>
        </member>
        <member name="F:TimeSeriesFramework.MeasurementStateFlags.ReservedQualityFlag">
            <summary>
            Defines reserved quality flag.
            </summary>
        </member>
        <member name="F:TimeSeriesFramework.MeasurementStateFlags.BadTime">
            <summary>
            Defines bad time state.
            </summary>
        </member>
        <member name="F:TimeSeriesFramework.MeasurementStateFlags.SuspectTime">
            <summary>
            Defines suspect time state.
            </summary>
        </member>
        <member name="F:TimeSeriesFramework.MeasurementStateFlags.LateTimeAlarm">
            <summary>
            Defines late time alarm.
            </summary>
        </member>
        <member name="F:TimeSeriesFramework.MeasurementStateFlags.FutureTimeAlarm">
            <summary>
            Defines future time alarm.
            </summary>
        </member>
        <member name="F:TimeSeriesFramework.MeasurementStateFlags.UpSampled">
            <summary>
            Defines upsampled state.
            </summary>
        </member>
        <member name="F:TimeSeriesFramework.MeasurementStateFlags.DownSampled">
            <summary>
            Defines downsampled state.
            </summary>
        </member>
        <member name="F:TimeSeriesFramework.MeasurementStateFlags.DiscardedValue">
            <summary>
            Defines discarded value state.
            </summary>
        </member>
        <member name="F:TimeSeriesFramework.MeasurementStateFlags.ReservedTimeFlag">
            <summary>
            Defines reserved time flag.
            </summary>
        </member>
        <member name="F:TimeSeriesFramework.MeasurementStateFlags.UserDefinedFlag1">
            <summary>
            Defines user defined flag 1.
            </summary>
        </member>
        <member name="F:TimeSeriesFramework.MeasurementStateFlags.UserDefinedFlag2">
            <summary>
            Defines user defined flag 2.
            </summary>
        </member>
        <member name="F:TimeSeriesFramework.MeasurementStateFlags.UserDefinedFlag3">
            <summary>
            Defines user defined flag 3.
            </summary>
        </member>
        <member name="F:TimeSeriesFramework.MeasurementStateFlags.UserDefinedFlag4">
            <summary>
            Defines user defined flag 4.
            </summary>
        </member>
        <member name="F:TimeSeriesFramework.MeasurementStateFlags.UserDefinedFlag5">
            <summary>
            Defines user defined flag 5.
            </summary>
        </member>
        <member name="F:TimeSeriesFramework.MeasurementStateFlags.SystemError">
            <summary>
            Defines system error state.
            </summary>
        </member>
        <member name="F:TimeSeriesFramework.MeasurementStateFlags.SystemWarning">
            <summary>
            Defines system warning state.
            </summary>
        </member>
        <member name="F:TimeSeriesFramework.MeasurementStateFlags.MeasurementError">
            <summary>
            Defines measurement error flag.
            </summary>
        </member>
        <member name="T:TimeSeriesFramework.IMeasurement">
            <summary>
            Represents an interface for an abstract measurement value measured by a device at an exact time.
            </summary>
            <remarks>
            This interface abstractly represents a measured value at an exact time interval.
            </remarks>
        </member>
        <member name="T:TimeSeriesFramework.ITimeSeriesValue`1">
            <summary>
            Represents the fundamental typed interface for a time-series value.
            </summary>
            <typeparam name="T"><see cref="T:System.Type"/> of the time-series value.</typeparam>
        </member>
        <member name="T:TimeSeriesFramework.ITimeSeriesValue">
            <summary>
            Represents the fundamental binary value interface for a time-series value.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.ITimeSeriesValue.GetHashCode">
            <summary>
            Get the hash code for the <see cref="P:TimeSeriesFramework.ITimeSeriesValue.ID"/>.
            </summary>
            <returns>Hash code for the <see cref="P:TimeSeriesFramework.ITimeSeriesValue.ID"/>.</returns>
            <remarks>Implementors should always return the hash code based on <see cref="P:TimeSeriesFramework.ITimeSeriesValue.ID"/> of measurement.</remarks>
        </member>
        <member name="P:TimeSeriesFramework.ITimeSeriesValue.ID">
            <summary>
            Gets or sets the <see cref="T:System.Guid"/> based signal ID of this <see cref="T:TimeSeriesFramework.ITimeSeriesValue`1"/>.
            </summary>
            <remarks>
            This is the fundamental identifier of the <see cref="T:TimeSeriesFramework.ITimeSeriesValue`1"/>.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.ITimeSeriesValue.Value">
            <summary>
            Gets or sets the raw value of this <see cref="T:TimeSeriesFramework.ITimeSeriesValue`1"/>.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.ITimeSeriesValue.Timestamp">
            <summary>
            Gets or sets exact timestamp, in ticks, of the data represented by this <see cref="T:TimeSeriesFramework.ITimeSeriesValue`1"/>.
            </summary>
            <remarks>
            The value of this property represents the number of 100-nanosecond intervals that have elapsed since 12:00:00 midnight, January 1, 0001.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.ITimeSeriesValue`1.Value">
            <summary>
            Gets or sets the raw typed value of this <see cref="T:TimeSeriesFramework.ITimeSeriesValue`1"/>.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.IMeasurement.Key">
            <summary>
            Gets or sets the primary key of this <see cref="T:TimeSeriesFramework.IMeasurement"/>.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.IMeasurement.TagName">
            <summary>
            Gets or sets the text based tag name of this <see cref="T:TimeSeriesFramework.IMeasurement"/>.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.IMeasurement.AdjustedValue">
            <summary>
            Gets the adjusted numeric value of this <see cref="T:TimeSeriesFramework.IMeasurement"/>, taking into account the specified <see cref="P:TimeSeriesFramework.IMeasurement.Adder"/> and <see cref="P:TimeSeriesFramework.IMeasurement.Multiplier"/> offsets.
            </summary>
            <remarks>
            <para>Implementors need to account for <see cref="P:TimeSeriesFramework.IMeasurement.Adder"/> and <see cref="P:TimeSeriesFramework.IMeasurement.Multiplier"/> in return value, e.g.:<br/>
            <c>return <see cref="P:TimeSeriesFramework.ITimeSeriesValue`1.Value"/> * <see cref="P:TimeSeriesFramework.IMeasurement.Multiplier"/> + <see cref="P:TimeSeriesFramework.IMeasurement.Adder"/></c>
            </para>
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.IMeasurement.Adder">
            <summary>
            Defines an offset to add to the <see cref="T:TimeSeriesFramework.IMeasurement"/> value.
            </summary>
            <remarks>
            Implementors should make sure this value defaults to zero.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.IMeasurement.Multiplier">
            <summary>
            Defines a mulplicative offset to apply to the <see cref="T:TimeSeriesFramework.IMeasurement"/> value.
            </summary>
            <remarks>
            Implementors should make sure this value defaults to one.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.IMeasurement.StateFlags">
            <summary>
            Gets or sets <see cref="T:TimeSeriesFramework.MeasurementStateFlags"/> associated with this <see cref="T:TimeSeriesFramework.IMeasurement"/>.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.IMeasurement.ReceivedTimestamp">
            <summary>
            Gets or sets exact timestamp, in ticks, of when this <see cref="T:TimeSeriesFramework.IMeasurement"/> was received (i.e., created).
            </summary>
            <remarks>
            <para>Implementors should set this timestamp to be the ticks of <see cref="P:TVA.PrecisionTimer.UtcNow"/> of when this class was created.</para>
            <para>The value of this property represents the number of 100-nanosecond intervals that have elapsed since 12:00:00 midnight, January 1, 0001.</para>
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.IMeasurement.PublishedTimestamp">
            <summary>
            Gets or sets exact timestamp, in ticks, of when this <see cref="T:TimeSeriesFramework.IMeasurement"/> was published (post-processing).
            </summary>
            <remarks>
            The value of this property represents the number of 100-nanosecond intervals that have elapsed since 12:00:00 midnight, January 1, 0001.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.IMeasurement.MeasurementValueFilter">
            <summary>
            Gets or sets function used to apply a downsampling filter over a sequence of <see cref="T:TimeSeriesFramework.IMeasurement"/> values.
            </summary>
        </member>
        <member name="T:TimeSeriesFramework.IMeasurementExtensions">
            <summary>
            Defines static extension functions for <see cref="T:TimeSeriesFramework.IMeasurement"/> implementations.
            </summary>
            <remarks>
            These helper functions map to the previously defined corresponding properties to help with the transition of <see cref="T:TimeSeriesFramework.MeasurementStateFlags"/>.
            </remarks>
        </member>
        <member name="M:TimeSeriesFramework.IMeasurementExtensions.ValueQualityIsGood(TimeSeriesFramework.IMeasurement)">
            <summary>
            Returns <c>true</c> if <see cref="F:TimeSeriesFramework.MeasurementStateFlags.BadData"/> is not set.
            </summary>
            <param name="measurement"><see cref="T:TimeSeriesFramework.IMeasurement"/> instance to test.</param>
            <returns><c>true</c> if <see cref="F:TimeSeriesFramework.MeasurementStateFlags.BadData"/> is not set.</returns>
        </member>
        <member name="M:TimeSeriesFramework.IMeasurementExtensions.TimestampQualityIsGood(TimeSeriesFramework.IMeasurement)">
            <summary>
            Returns <c>true</c> if <see cref="F:TimeSeriesFramework.MeasurementStateFlags.BadTime"/> is not set.
            </summary>
            <param name="measurement"><see cref="T:TimeSeriesFramework.IMeasurement"/> instance to test.</param>
            <returns><c>true</c> if <see cref="F:TimeSeriesFramework.MeasurementStateFlags.BadTime"/> is not set.</returns>
        </member>
        <member name="M:TimeSeriesFramework.IMeasurementExtensions.IsDiscarded(TimeSeriesFramework.IMeasurement)">
            <summary>
            Returns <c>true</c> if <see cref="F:TimeSeriesFramework.MeasurementStateFlags.DiscardedValue"/> is set.
            </summary>
            <param name="measurement"><see cref="T:TimeSeriesFramework.IMeasurement"/> instance to test.</param>
            <returns><c>true</c> if <see cref="F:TimeSeriesFramework.MeasurementStateFlags.DiscardedValue"/> is not set.</returns>
        </member>
        <member name="M:TimeSeriesFramework.IMeasurementExtensions.IsCalculated(TimeSeriesFramework.IMeasurement)">
            <summary>
            Returns <c>true</c> if <see cref="F:TimeSeriesFramework.MeasurementStateFlags.CalcuatedValue"/> is set.
            </summary>
            <param name="measurement"><see cref="T:TimeSeriesFramework.IMeasurement"/> instance to test.</param>
            <returns><c>true</c> if <see cref="F:TimeSeriesFramework.MeasurementStateFlags.CalcuatedValue"/> is not set.</returns>
        </member>
        <member name="M:TimeSeriesFramework.IMeasurementExtensions.RuntimeSignalID(TimeSeriesFramework.IMeasurement)">
            <summary>
            Returns the measurement ID if defined, otherwise the run-time signal ID associated with the measurement key.
            </summary>
            <param name="measurement"><see cref="T:TimeSeriesFramework.IMeasurement"/> instance to test.</param>
            <returns>Measurement ID if defined, otherwise the run-time signal ID associated with the measurement key.</returns>
        </member>
        <member name="M:TimeSeriesFramework.IMeasurementExtensions.MeasurementKeys(System.Collections.Generic.IEnumerable{TimeSeriesFramework.IMeasurement})">
            <summary>
            Returns the <see cref="T:TimeSeriesFramework.MeasurementKey"/> values of a <see cref="T:TimeSeriesFramework.IMeasurement"/> enumeration.
            </summary>
            <param name="measurements"><see cref="T:TimeSeriesFramework.IMeasurement"/> enumeration to convert.</param>
            <returns><see cref="T:TimeSeriesFramework.MeasurementKey"/> values of the <see cref="T:TimeSeriesFramework.IMeasurement"/> enumeration.</returns>
        </member>
        <member name="T:TimeSeriesFramework.ImmediateMeasurements">
            <summary>
            Represents the absolute latest measurement values received by a <see cref="T:TimeSeriesFramework.ConcentratorBase"/> implementation.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.ImmediateMeasurements.#ctor">
            <summary>
            Creates a new instance of the <see cref="T:TimeSeriesFramework.ImmediateMeasurements"/> class.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.ImmediateMeasurements.Finalize">
            <summary>
            Releases the unmanaged resources before the <see cref="T:TimeSeriesFramework.ImmediateMeasurements"/> object is reclaimed by <see cref="T:System.GC"/>.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.ImmediateMeasurements.Dispose">
            <summary>
            Releases all the resources used by the <see cref="T:TimeSeriesFramework.ImmediateMeasurements"/> object.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.ImmediateMeasurements.Dispose(System.Boolean)">
            <summary>
            Releases the unmanaged resources used by the <see cref="T:TimeSeriesFramework.ImmediateMeasurements"/> object and optionally releases the managed resources.
            </summary>
            <param name="disposing">true to release both managed and unmanaged resources; false to release only unmanaged resources.</param>
        </member>
        <member name="M:TimeSeriesFramework.ImmediateMeasurements.TaggedMeasurementKeys(System.String)">
            <summary>Returns measurement list of specified tag, if it exists.</summary>
            <param name="tag">A <see cref="T:System.String"/> that indicates the tag to use.</param>
            <returns>A collection of measurement keys.</returns>
        </member>
        <member name="M:TimeSeriesFramework.ImmediateMeasurements.UpdateMeasurementValue(TimeSeriesFramework.IMeasurement)">
            <summary>Store new measurement.</summary>
            <param name="newMeasurement">New measurement value to update.</param>
            <remarks>Value is only stored if it is newer than the cached value.</remarks>
        </member>
        <member name="M:TimeSeriesFramework.ImmediateMeasurements.Measurement(System.Guid)">
            <summary>Retrieves the specified immediate temporal measurement, creating it if needed.</summary>
            <param name="id"><see cref="T:System.Guid"/> based signal ID of measurement.</param>
            <returns>A <see cref="T:TimeSeriesFramework.TemporalMeasurement"/> object.</returns>
        </member>
        <member name="M:TimeSeriesFramework.ImmediateMeasurements.Measurement(TimeSeriesFramework.IMeasurement)">
            <summary>Retrieves the specified immediate temporal measurement, creating it if needed.</summary>
            <param name="measurement">Source <see cref="T:TimeSeriesFramework.IMeasurement"/> value.</param>
            <returns>A <see cref="T:TimeSeriesFramework.TemporalMeasurement"/> object.</returns>
        </member>
        <member name="M:TimeSeriesFramework.ImmediateMeasurements.ClearMeasurementCache">
            <summary>
            Clears the existing measurement cache.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.ImmediateMeasurements.DefineTaggedMeasurements(System.Data.DataTable)">
            <summary>Defines tagged measurements from a data table.</summary>
            <remarks>Expects <see cref="T:System.String"/> based tag field to be aliased as "Tag" and <see cref="T:System.Guid"/> based measurement ID field to be aliased as "ID".</remarks>
            <param name="taggedMeasurements">A <see cref="T:System.Data.DataTable"/> to use for defining the tagged measurements.</param>
        </member>
        <member name="M:TimeSeriesFramework.ImmediateMeasurements.AddTaggedMeasurement(System.String,System.Guid)">
            <summary>Associates a new measurement ID with a tag, creating the new tag if needed.</summary>
            <remarks>Allows you to define "grouped" points so you can aggregate certain measurements.</remarks>
            <param name="tag">A <see cref="T:System.String"/> to represent the key.</param>
            <param name="id">A <see cref="T:System.Guid"/> ID to associate with the tag.</param>
        </member>
        <member name="M:TimeSeriesFramework.ImmediateMeasurements.CalculateAverage(System.Int32@)">
            <summary>Calculates an average of all measurements.</summary>
            <remarks>This is only useful if all measurements represent the same type of measurement.</remarks>
            <param name="count">An <see cref="T:System.Int32"/> value to get the count of values averaged.</param>
            <returns>A <see cref="T:System.Double"/> value representing the average of the measurements.</returns>
        </member>
        <member name="M:TimeSeriesFramework.ImmediateMeasurements.CalculateTagAverage(System.String,System.Int32@)">
            <summary>Calculates an average of all measurements associated with the specified tag.</summary>
            <param name="count">An <see cref="T:System.Int32"/> value to get the count of values averaged.</param>
            <param name="tag">The type of measurements to average.</param>
            <returns>A <see cref="T:System.Double"/> value representing the average of the tags.</returns>
        </member>
        <member name="M:TimeSeriesFramework.ImmediateMeasurements.TagMinimum(System.String)">
            <summary>Returns the minimum value of all measurements associated with the specified tag.</summary>
            <returns>A <see cref="T:System.Double"/> value representing the tag minimum.</returns>
            <param name="tag">The tag group to evaluate.</param>
        </member>
        <member name="M:TimeSeriesFramework.ImmediateMeasurements.TagMaximum(System.String)">
            <summary>Returns the maximum value of all measurements associated with the specified tag.</summary>
            <returns>A <see cref="T:System.Double"/> value representing the tag maximum.</returns>
            <param name="tag">The tag group to evaluate.</param>
        </member>
        <member name="M:TimeSeriesFramework.ImmediateMeasurements.OnLagTimeUpdated(System.Double)">
            <summary>
            Updates the tracked temporal measurements lag time.
            </summary>
            <param name="lagTime">New lag time.</param>
        </member>
        <member name="M:TimeSeriesFramework.ImmediateMeasurements.OnLeadTimeUpdated(System.Double)">
            <summary>
            Updates the tracked temporal measurements lead time.
            </summary>
            <param name="leadTime">New lead time.</param>
        </member>
        <member name="P:TimeSeriesFramework.ImmediateMeasurements.Item(System.Guid)">
            <summary>We retrieve adjusted measurement values within time tolerance of concentrator real-time.</summary>
            <param name="id">A <see cref="T:System.Guid"/> representing the measurement ID.</param>
            <returns>A <see cref="T:System.Double"/> representing the adjusted measurement value.</returns>
        </member>
        <member name="P:TimeSeriesFramework.ImmediateMeasurements.MeasurementIDs">
            <summary>Returns collection of measurement ID's.</summary>
        </member>
        <member name="P:TimeSeriesFramework.ImmediateMeasurements.Tags">
            <summary>Returns ID collection for measurement tags.</summary>
        </member>
        <member name="P:TimeSeriesFramework.ImmediateMeasurements.Minimum">
            <summary>Returns the minimum value of all measurements.</summary>
            <remarks>This is only useful if all measurements represent the same type of measurement.</remarks>
        </member>
        <member name="P:TimeSeriesFramework.ImmediateMeasurements.Maximum">
            <summary>Returns the maximum value of all measurements.</summary>
            <remarks>This is only useful if all measurements represent the same type of measurement.</remarks>
        </member>
        <member name="P:TimeSeriesFramework.ImmediateMeasurements.RealTimeFunction">
            <summary>
            Gets or sets function to return real-time.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.ImmediateMeasurements.LagTime">
            <summary>
            Gets or sets the allowed past time deviation tolerance, in seconds (can be subsecond).
            </summary>
            <remarks>
            <para>Defines the time sensitivity to past measurement timestamps.</para>
            <para>The number of seconds allowed before assuming a measurement timestamp is too old.</para>
            </remarks>
            <exception cref="T:System.ArgumentOutOfRangeException">LagTime must be greater than zero, but it can be less than one.</exception>
        </member>
        <member name="P:TimeSeriesFramework.ImmediateMeasurements.LeadTime">
            <summary>
            Gets or sets the allowed future time deviation tolerance, in seconds (can be subsecond).
            </summary>
            <remarks>
            <para>Defines the time sensitivity to future measurement timestamps.</para>
            <para>The number of seconds allowed before assuming a measurement timestamp is too advanced.</para>
            </remarks>
            <exception cref="T:System.ArgumentOutOfRangeException">LeadTime must be greater than zero, but it can be less than one.</exception>
        </member>
        <member name="T:TimeSeriesFramework.InstallerBase">
            <summary>
            Defines a common installer class for the applications based on the time-series framework.
            </summary>
            <remarks>
            Users may choose to only install service application or its management tools, in either case common
            installation steps need to occur, so these steps are managed in this one common base class.
            </remarks>
        </member>
        <member name="M:TimeSeriesFramework.InstallerBase.OnSystemSettingsLoaded(System.Xml.XmlDocument,System.Xml.XmlNode)">
            <summary>
            Called when system settings are loaded.
            </summary>
            <remarks>
            This method will only be called if implementor overrides <see cref="P:TimeSeriesFramework.InstallerBase.ConfigurationName"/> with a valid config name.
            </remarks>
            <param name="configurationFile">Open xml document containing configuration settings.</param>
            <param name="systemSettingsNode">Xml node containing system settings.</param>
        </member>
        <member name="M:TimeSeriesFramework.InstallerBase.Install(System.Collections.IDictionary)">
            <summary>
            Installs the class.
            </summary>
            <param name="stateSaver">Current state information.</param>
        </member>
        <member name="P:TimeSeriesFramework.InstallerBase.ConfigurationName">
            <summary>
            Gets associated application configuration file name.
            </summary>
        </member>
        <member name="T:TimeSeriesFramework.Measurement">
            <summary>
            Implementation of a basic measurement.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Measurement.#ctor">
            <summary>
            Constructs a new <see cref="T:TimeSeriesFramework.Measurement"/> using default settings.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Measurement.ToString">
            <summary>
            Returns a <see cref="T:System.String"/> that represents the current <see cref="T:TimeSeriesFramework.Measurement"/>.
            </summary>
            <returns>A <see cref="T:System.String"/> that represents the current <see cref="T:TimeSeriesFramework.Measurement"/>.</returns>
        </member>
        <member name="M:TimeSeriesFramework.Measurement.Equals(TimeSeriesFramework.ITimeSeriesValue)">
            <summary>
            Determines whether the specified <see cref="T:TimeSeriesFramework.ITimeSeriesValue"/> is equal to the current <see cref="T:TimeSeriesFramework.Measurement"/>.
            </summary>
            <param name="other">The <see cref="T:TimeSeriesFramework.ITimeSeriesValue"/> to compare with the current <see cref="T:TimeSeriesFramework.Measurement"/>.</param>
            <returns>
            true if the specified <see cref="T:TimeSeriesFramework.ITimeSeriesValue"/> is equal to the current <see cref="T:TimeSeriesFramework.Measurement"/>;
            otherwise, false.
            </returns>
        </member>
        <member name="M:TimeSeriesFramework.Measurement.Equals(System.Object)">
            <summary>
            Determines whether the specified <see cref="T:System.Object"/> is equal to the current <see cref="T:TimeSeriesFramework.Measurement"/>.
            </summary>
            <param name="obj">The <see cref="T:System.Object"/> to compare with the current <see cref="T:TimeSeriesFramework.Measurement"/>.</param>
            <returns>
            true if the specified <see cref="T:System.Object"/> is equal to the current <see cref="T:TimeSeriesFramework.Measurement"/>;
            otherwise, false.
            </returns>
        </member>
        <member name="M:TimeSeriesFramework.Measurement.CompareTo(TimeSeriesFramework.ITimeSeriesValue)">
            <summary>
            Compares the <see cref="T:TimeSeriesFramework.Measurement"/> with an <see cref="T:TimeSeriesFramework.ITimeSeriesValue"/>.
            </summary>
            <param name="other">The <see cref="T:TimeSeriesFramework.ITimeSeriesValue"/> to compare with the current <see cref="T:TimeSeriesFramework.Measurement"/>.</param>
            <returns>A 32-bit signed integer that indicates the relative order of the objects being compared.</returns>
            <remarks>Measurement implementations should compare by hash code.</remarks>
        </member>
        <member name="M:TimeSeriesFramework.Measurement.CompareTo(System.Object)">
            <summary>
            Compares the <see cref="T:TimeSeriesFramework.Measurement"/> with the specified <see cref="T:System.Object"/>.
            </summary>
            <param name="obj">The <see cref="T:System.Object"/> to compare with the current <see cref="T:TimeSeriesFramework.Measurement"/>.</param>
            <returns>A 32-bit signed integer that indicates the relative order of the objects being compared.</returns>
            <exception cref="T:System.ArgumentException"><paramref name="obj"/> is not an <see cref="T:TimeSeriesFramework.IMeasurement"/>.</exception>
            <remarks>Measurement implementations should compare by hash code.</remarks>
        </member>
        <member name="M:TimeSeriesFramework.Measurement.GetHashCode">
            <summary>
            Serves as a hash function for the current <see cref="T:TimeSeriesFramework.Measurement"/>.
            </summary>
            <returns>A hash code for the current <see cref="T:TimeSeriesFramework.Measurement"/>.</returns>
            <remarks>Hash code based on value of measurement.</remarks>
        </member>
        <member name="M:TimeSeriesFramework.Measurement.op_Equality(TimeSeriesFramework.Measurement,TimeSeriesFramework.Measurement)">
            <summary>
            Compares two <see cref="T:TimeSeriesFramework.Measurement"/> values for equality.
            </summary>
            <param name="measurement1">A <see cref="T:TimeSeriesFramework.Measurement"/> left hand operand.</param>
            <param name="measurement2">A <see cref="T:TimeSeriesFramework.Measurement"/> right hand operand.</param>
            <returns>A boolean representing the result.</returns>
        </member>
        <member name="M:TimeSeriesFramework.Measurement.op_Inequality(TimeSeriesFramework.Measurement,TimeSeriesFramework.Measurement)">
            <summary>
            Compares two <see cref="T:TimeSeriesFramework.Measurement"/> values for inequality.
            </summary>
            <param name="measurement1">A <see cref="T:TimeSeriesFramework.Measurement"/> left hand operand.</param>
            <param name="measurement2">A <see cref="T:TimeSeriesFramework.Measurement"/> right hand operand.</param>
            <returns>A boolean representing the result.</returns>
        </member>
        <member name="M:TimeSeriesFramework.Measurement.op_GreaterThan(TimeSeriesFramework.Measurement,TimeSeriesFramework.Measurement)">
            <summary>
            Returns true if left <see cref="T:TimeSeriesFramework.Measurement"/> value is greater than right <see cref="T:TimeSeriesFramework.Measurement"/> value.
            </summary>
            <param name="measurement1">A <see cref="T:TimeSeriesFramework.Measurement"/> left hand operand.</param>
            <param name="measurement2">A <see cref="T:TimeSeriesFramework.Measurement"/> right hand operand.</param>
            <returns>A boolean representing the result.</returns>
        </member>
        <member name="M:TimeSeriesFramework.Measurement.op_GreaterThanOrEqual(TimeSeriesFramework.Measurement,TimeSeriesFramework.Measurement)">
            <summary>
            Returns true if left <see cref="T:TimeSeriesFramework.Measurement"/> value is greater than or equal to right <see cref="T:TimeSeriesFramework.Measurement"/> value.
            </summary>
            <param name="measurement1">A <see cref="T:TimeSeriesFramework.Measurement"/> left hand operand.</param>
            <param name="measurement2">A <see cref="T:TimeSeriesFramework.Measurement"/> right hand operand.</param>
            <returns>A boolean representing the result.</returns>
        </member>
        <member name="M:TimeSeriesFramework.Measurement.op_LessThan(TimeSeriesFramework.Measurement,TimeSeriesFramework.Measurement)">
            <summary>
            Returns true if left <see cref="T:TimeSeriesFramework.Measurement"/> value is less than right <see cref="T:TimeSeriesFramework.Measurement"/> value.
            </summary>
            <param name="measurement1">A <see cref="T:TimeSeriesFramework.Measurement"/> left hand operand.</param>
            <param name="measurement2">A <see cref="T:TimeSeriesFramework.Measurement"/> right hand operand.</param>
            <returns>A boolean representing the result.</returns>
        </member>
        <member name="M:TimeSeriesFramework.Measurement.op_LessThanOrEqual(TimeSeriesFramework.Measurement,TimeSeriesFramework.Measurement)">
            <summary>
            Returns true if left <see cref="T:TimeSeriesFramework.Measurement"/> value is less than or equal to right <see cref="T:TimeSeriesFramework.Measurement"/> value.
            </summary>
            <param name="measurement1">A <see cref="T:TimeSeriesFramework.Measurement"/> left hand operand.</param>
            <param name="measurement2">A <see cref="T:TimeSeriesFramework.Measurement"/> right hand operand.</param>
            <returns>A boolean representing the result.</returns>
        </member>
        <member name="F:TimeSeriesFramework.Measurement.Undefined">
            <summary>
            Represents an undefined measurement.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Measurement.Clone(TimeSeriesFramework.IMeasurement)">
            <summary>
            Creates a copy of the specified measurement.
            </summary>
            <param name="measurementToClone">Specified measurement to clone.</param>
            <returns>A copy of the <see cref="T:TimeSeriesFramework.Measurement"/> object.</returns>
        </member>
        <member name="M:TimeSeriesFramework.Measurement.Clone(TimeSeriesFramework.IMeasurement,TVA.Ticks)">
            <summary>
            Creates a copy of the specified measurement using a new timestamp.
            </summary>
            <param name="measurementToClone">Specified measurement to clone.</param>
            <param name="timestamp">New timestamp, in ticks, for cloned measurement.</param>
            <returns>A copy of the <see cref="T:TimeSeriesFramework.Measurement"/> object.</returns>
        </member>
        <member name="M:TimeSeriesFramework.Measurement.Clone(TimeSeriesFramework.IMeasurement,System.Double,TVA.Ticks)">
            <summary>
            Creates a copy of the specified measurement using a new value and timestamp.
            </summary>
            <param name="measurementToClone">Specified measurement to clone.</param>
            <param name="value">New value for cloned measurement.</param>
            <param name="timestamp">New timestamp, in ticks, for cloned measurement.</param>
            <returns>A copy of the <see cref="T:TimeSeriesFramework.Measurement"/> object.</returns>
        </member>
        <member name="M:TimeSeriesFramework.Measurement.ToString(TimeSeriesFramework.IMeasurement,System.Boolean)">
            <summary>
            Returns a <see cref="T:System.String"/> that represents the specified <see cref="T:TimeSeriesFramework.IMeasurement"/>.
            </summary>
            <param name="measurement"><see cref="T:TimeSeriesFramework.IMeasurement"/> to convert to a <see cref="T:System.String"/> representation.</param>
            <param name="includeTagName">Set to <c>true</c> to include measurement's tag name, if defined; otherwise set to <c>false</c>.</param>
            <returns>A <see cref="T:System.String"/> that represents the specified <see cref="T:TimeSeriesFramework.IMeasurement"/>.</returns>
        </member>
        <member name="M:TimeSeriesFramework.Measurement.AverageValueFilter(System.Collections.Generic.IEnumerable{TimeSeriesFramework.IMeasurement})">
            <summary>
            Calculates an average of the specified sequence of <see cref="T:TimeSeriesFramework.IMeasurement"/> values.
            </summary>
            <param name="source">Sequence of <see cref="T:TimeSeriesFramework.IMeasurement"/> values over which to run calculation.</param>
            <returns>Average of the specified sequence of <see cref="T:TimeSeriesFramework.IMeasurement"/> values.</returns>
        </member>
        <member name="M:TimeSeriesFramework.Measurement.MajorityValueFilter(System.Collections.Generic.IEnumerable{TimeSeriesFramework.IMeasurement})">
            <summary>
            Returns the majority value of the specified sequence of <see cref="T:TimeSeriesFramework.IMeasurement"/> values.
            </summary>
            <param name="source">Sequence of <see cref="T:TimeSeriesFramework.IMeasurement"/> values over which to run calculation.</param>
            <returns>Majority value of the specified sequence of <see cref="T:TimeSeriesFramework.IMeasurement"/> values.</returns>
        </member>
        <member name="P:TimeSeriesFramework.Measurement.ID">
            <summary>
            Gets or sets the <see cref="T:System.Guid"/> based signal ID of this <see cref="T:TimeSeriesFramework.Measurement"/>, if available.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Measurement.Key">
            <summary>
            Gets or sets the primary <see cref="T:TimeSeriesFramework.MeasurementKey"/> of this <see cref="T:TimeSeriesFramework.Measurement"/>.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Measurement.StateFlags">
            <summary>
            Gets or sets <see cref="T:TimeSeriesFramework.MeasurementStateFlags"/> associated with this <see cref="T:TimeSeriesFramework.Measurement"/>.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Measurement.TagName">
            <summary>
            Gets or sets the text based tag name of this <see cref="T:TimeSeriesFramework.Measurement"/>.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Measurement.Value">
            <summary>
            Gets or sets the raw measurement value that is not offset by <see cref="P:TimeSeriesFramework.Measurement.Adder"/> and <see cref="P:TimeSeriesFramework.Measurement.Multiplier"/>.
            </summary>
            <returns>Raw value of this <see cref="T:TimeSeriesFramework.Measurement"/> (i.e., value that is not offset by <see cref="P:TimeSeriesFramework.Measurement.Adder"/> and <see cref="P:TimeSeriesFramework.Measurement.Multiplier"/>).</returns>
        </member>
        <member name="P:TimeSeriesFramework.Measurement.AdjustedValue">
            <summary>
            Gets the adjusted numeric value of this measurement, taking into account the specified <see cref="P:TimeSeriesFramework.Measurement.Adder"/> and <see cref="P:TimeSeriesFramework.Measurement.Multiplier"/> offsets.
            </summary>
            <remarks>
            Note that returned value will be offset by <see cref="P:TimeSeriesFramework.Measurement.Adder"/> and <see cref="P:TimeSeriesFramework.Measurement.Multiplier"/>.
            </remarks>
            <returns><see cref="P:TimeSeriesFramework.Measurement.Value"/> offset by <see cref="P:TimeSeriesFramework.Measurement.Adder"/> and <see cref="P:TimeSeriesFramework.Measurement.Multiplier"/> (i.e., <c><see cref="P:TimeSeriesFramework.Measurement.Value"/> * <see cref="P:TimeSeriesFramework.Measurement.Multiplier"/> + <see cref="P:TimeSeriesFramework.Measurement.Adder"/></c>).</returns>
        </member>
        <member name="P:TimeSeriesFramework.Measurement.Adder">
            <summary>
            Gets or sets an offset to add to the measurement value. This defaults to 0.0.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Measurement.Multiplier">
            <summary>
            Defines a mulplicative offset to apply to the measurement value. This defaults to 1.0.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Measurement.Timestamp">
            <summary>
            Gets or sets exact timestamp, in ticks, of the data represented by this <see cref="T:TimeSeriesFramework.Measurement"/>.
            </summary>
            <remarks>
            The value of this property represents the number of 100-nanosecond intervals that have elapsed since 12:00:00 midnight, January 1, 0001.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.Measurement.ReceivedTimestamp">
            <summary>
            Gets or sets exact timestamp, in ticks, of when this <see cref="T:TimeSeriesFramework.Measurement"/> was received (i.e., created).
            </summary>
            <remarks>
            <para>In the default implementation, this timestamp will simply be the ticks of <see cref="P:TVA.PrecisionTimer.UtcNow"/> of when this class was created.</para>
            <para>The value of this property represents the number of 100-nanosecond intervals that have elapsed since 12:00:00 midnight, January 1, 0001.</para>
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.Measurement.PublishedTimestamp">
            <summary>
            Gets or sets exact timestamp, in ticks, of when this <see cref="T:TimeSeriesFramework.Measurement"/> was published (post-processing).
            </summary>
            <remarks>
            The value of this property represents the number of 100-nanosecond intervals that have elapsed since 12:00:00 midnight, January 1, 0001.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.Measurement.MeasurementValueFilter">
            <summary>
            Gets or sets function used to apply a downsampling filter over a sequence of <see cref="T:TimeSeriesFramework.IMeasurement"/> values.
            </summary>
        </member>
        <member name="T:TimeSeriesFramework.MeasurementKey">
            <summary>
            Represents a primary key for a measurement.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.MeasurementKey.#ctor(System.Guid,System.UInt32,System.String)">
            <summary>
            Constructs a new <see cref="T:TimeSeriesFramework.MeasurementKey"/> given the specified parameters.
            </summary>
            <param name="signalID"><see cref="T:System.Guid"/> ID of associated signal, if defined.</param>
            <param name="id">Numeric ID of the measurement that this <see cref="T:TimeSeriesFramework.MeasurementKey"/> represents.</param>
            <param name="source">Source of the measurement that this <see cref="T:TimeSeriesFramework.MeasurementKey"/> represents (e.g., name of archive).</param>
            <exception cref="T:System.ArgumentNullException">source cannot be null.</exception>
        </member>
        <member name="M:TimeSeriesFramework.MeasurementKey.UpdateSignalID(System.Guid)">
            <summary>
            Update the signal ID of this <see cref="T:TimeSeriesFramework.MeasurementKey"/>.
            </summary>
            <param name="signalID">New <see cref="T:System.Guid"/> based signal ID to update this <see cref="T:TimeSeriesFramework.MeasurementKey"/> with.</param>
        </member>
        <member name="M:TimeSeriesFramework.MeasurementKey.ToString">
            <summary>
            Returns a <see cref="T:System.String"/> that represents the current <see cref="T:TimeSeriesFramework.MeasurementKey"/>.
            </summary>
            <returns>A <see cref="T:System.String"/> that represents the current <see cref="T:TimeSeriesFramework.MeasurementKey"/>.</returns>
        </member>
        <member name="M:TimeSeriesFramework.MeasurementKey.GetHashCode">
            <summary>
            Serves as a hash function for the current <see cref="T:TimeSeriesFramework.MeasurementKey"/>.
            </summary>
            <returns>A hash code for the current <see cref="T:TimeSeriesFramework.MeasurementKey"/>.</returns>
        </member>
        <member name="M:TimeSeriesFramework.MeasurementKey.Equals(TimeSeriesFramework.MeasurementKey)">
            <summary>
            Determines whether the specified <see cref="T:TimeSeriesFramework.MeasurementKey"/> is equal to the current <see cref="T:TimeSeriesFramework.MeasurementKey"/>.
            </summary>
            <param name="other">The <see cref="T:TimeSeriesFramework.MeasurementKey"/> to compare with the current <see cref="T:TimeSeriesFramework.MeasurementKey"/>.</param>
            <returns>
            true if the specified <see cref="T:TimeSeriesFramework.MeasurementKey"/> is equal to the current <see cref="T:TimeSeriesFramework.MeasurementKey"/>;
            otherwise, false.
            </returns>
        </member>
        <member name="M:TimeSeriesFramework.MeasurementKey.Equals(System.Object)">
            <summary>
            Determines whether the specified <see cref="T:System.Object"/> is equal to the current <see cref="T:TimeSeriesFramework.MeasurementKey"/>.
            </summary>
            <param name="obj">The <see cref="T:System.Object"/> to compare with the current <see cref="T:TimeSeriesFramework.MeasurementKey"/>.</param>
            <returns>
            true if the specified <see cref="T:System.Object"/> is equal to the current <see cref="T:TimeSeriesFramework.MeasurementKey"/>;
            otherwise, false.
            </returns>
            <exception cref="T:System.ArgumentException"><paramref name="obj"/> is not a <see cref="T:TimeSeriesFramework.MeasurementKey"/>.</exception>
        </member>
        <member name="M:TimeSeriesFramework.MeasurementKey.CompareTo(TimeSeriesFramework.MeasurementKey)">
            <summary>
            Compares the <see cref="T:TimeSeriesFramework.MeasurementKey"/> with another <see cref="T:TimeSeriesFramework.MeasurementKey"/>.
            </summary>
            <param name="other">The <see cref="T:TimeSeriesFramework.MeasurementKey"/> to compare with the current <see cref="T:TimeSeriesFramework.MeasurementKey"/>.</param>
            <returns>A 32-bit signed integer that indicates the relative order of the objects being compared.</returns>
        </member>
        <member name="M:TimeSeriesFramework.MeasurementKey.CompareTo(System.Object)">
            <summary>
            Compares the <see cref="T:TimeSeriesFramework.MeasurementKey"/> with the specified <see cref="T:System.Object"/>.
            </summary>
            <param name="obj">The <see cref="T:System.Object"/> to compare with the current <see cref="T:TimeSeriesFramework.MeasurementKey"/>.</param>
            <returns>A 32-bit signed integer that indicates the relative order of the objects being compared.</returns>
            <exception cref="T:System.ArgumentException"><paramref name="obj"/> is not a <see cref="T:TimeSeriesFramework.MeasurementKey"/>.</exception>
        </member>
        <member name="M:TimeSeriesFramework.MeasurementKey.op_Equality(TimeSeriesFramework.MeasurementKey,TimeSeriesFramework.MeasurementKey)">
            <summary>
            Compares two <see cref="T:TimeSeriesFramework.MeasurementKey"/> values for equality.
            </summary>
            <param name="key1">A <see cref="T:TimeSeriesFramework.MeasurementKey"/> left hand operand.</param>
            <param name="key2">A <see cref="T:TimeSeriesFramework.MeasurementKey"/> right hand operand.</param>
            <returns>A boolean representing the result.</returns>
        </member>
        <member name="M:TimeSeriesFramework.MeasurementKey.op_Inequality(TimeSeriesFramework.MeasurementKey,TimeSeriesFramework.MeasurementKey)">
            <summary>
            Compares two <see cref="T:TimeSeriesFramework.MeasurementKey"/> values for inequality.
            </summary>
            <param name="key1">A <see cref="T:TimeSeriesFramework.MeasurementKey"/> left hand operand.</param>
            <param name="key2">A <see cref="T:TimeSeriesFramework.MeasurementKey"/> right hand operand.</param>
            <returns>A boolean representing the result.</returns>
        </member>
        <member name="M:TimeSeriesFramework.MeasurementKey.op_GreaterThan(TimeSeriesFramework.MeasurementKey,TimeSeriesFramework.MeasurementKey)">
            <summary>
            Returns true if left <see cref="T:TimeSeriesFramework.MeasurementKey"/> value is greater than right <see cref="T:TimeSeriesFramework.MeasurementKey"/> value.
            </summary>
            <param name="key1">A <see cref="T:TimeSeriesFramework.MeasurementKey"/> left hand operand.</param>
            <param name="key2">A <see cref="T:TimeSeriesFramework.MeasurementKey"/> right hand operand.</param>
            <returns>A boolean representing the result.</returns>
        </member>
        <member name="M:TimeSeriesFramework.MeasurementKey.op_GreaterThanOrEqual(TimeSeriesFramework.MeasurementKey,TimeSeriesFramework.MeasurementKey)">
            <summary>
            Returns true if left <see cref="T:TimeSeriesFramework.MeasurementKey"/> value is greater than or equal to right <see cref="T:TimeSeriesFramework.MeasurementKey"/> value.
            </summary>
            <param name="key1">A <see cref="T:TimeSeriesFramework.MeasurementKey"/> left hand operand.</param>
            <param name="key2">A <see cref="T:TimeSeriesFramework.MeasurementKey"/> right hand operand.</param>
            <returns>A boolean representing the result.</returns>
        </member>
        <member name="M:TimeSeriesFramework.MeasurementKey.op_LessThan(TimeSeriesFramework.MeasurementKey,TimeSeriesFramework.MeasurementKey)">
            <summary>
            Returns true if left <see cref="T:TimeSeriesFramework.MeasurementKey"/> value is less than right <see cref="T:TimeSeriesFramework.MeasurementKey"/> value.
            </summary>
            <param name="key1">A <see cref="T:TimeSeriesFramework.MeasurementKey"/> left hand operand.</param>
            <param name="key2">A <see cref="T:TimeSeriesFramework.MeasurementKey"/> right hand operand.</param>
            <returns>A boolean representing the result.</returns>
        </member>
        <member name="M:TimeSeriesFramework.MeasurementKey.op_LessThanOrEqual(TimeSeriesFramework.MeasurementKey,TimeSeriesFramework.MeasurementKey)">
            <summary>
            Returns true if left <see cref="T:TimeSeriesFramework.MeasurementKey"/> value is less than or equal to right <see cref="T:TimeSeriesFramework.MeasurementKey"/> value.
            </summary>
            <param name="key1">A <see cref="T:TimeSeriesFramework.MeasurementKey"/> left hand operand.</param>
            <param name="key2">A <see cref="T:TimeSeriesFramework.MeasurementKey"/> right hand operand.</param>
            <returns>A boolean representing the result.</returns>
        </member>
        <member name="F:TimeSeriesFramework.MeasurementKey.Undefined">
            <summary>
            Represents an undefined measurement key.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.MeasurementKey.Parse(System.String,System.Guid)">
            <summary>
            Converts the string representation of a <see cref="T:TimeSeriesFramework.MeasurementKey"/> into its value equivalent.
            </summary>
            <param name="value">A string representing the <see cref="T:TimeSeriesFramework.MeasurementKey"/> to convert.</param>
            <param name="signalID"><see cref="T:System.Guid"/> based signal ID associated with this <see cref="T:TimeSeriesFramework.MeasurementKey"/>, if defined.</param>
            <returns>A <see cref="T:TimeSeriesFramework.MeasurementKey"/> value equivalent the representation contained in <paramref name="value"/>.</returns>
            <exception cref="T:System.FormatException">The value is not in the correct format for a <see cref="T:TimeSeriesFramework.MeasurementKey"/> value.</exception>
        </member>
        <member name="M:TimeSeriesFramework.MeasurementKey.LookupBySignalID(System.Guid)">
            <summary>
            Looks up the measurement key associated with the given signal ID.
            </summary>
            <param name="signalID">The signal ID of the measurement key.</param>
            <returns>The measurement key associated with the given signal ID.</returns>
            <remarks>
            If no measurement key is found with the given signal ID, a measurement key is
            returned with generic default values for <see cref="P:TimeSeriesFramework.MeasurementKey.Source"/> and <see cref="P:TimeSeriesFramework.MeasurementKey.ID"/>,
            but this key is not cached. In order to cache a measurement key, a Source and ID
            must be provided, either via the <see cref="M:TimeSeriesFramework.MeasurementKey.#ctor(System.Guid,System.UInt32,System.String)"/>
            constructor or the <see cref="M:TimeSeriesFramework.MeasurementKey.Parse(System.String,System.Guid)"/> method.
            </remarks>
        </member>
        <member name="M:TimeSeriesFramework.MeasurementKey.TryParse(System.String,System.Guid,TimeSeriesFramework.MeasurementKey@)">
            <summary>
            Attempts to convert the string representation of a <see cref="T:TimeSeriesFramework.MeasurementKey"/> into its value equivalent.
            </summary>
            <param name="value">A string representing the <see cref="T:TimeSeriesFramework.MeasurementKey"/> to convert.</param>
            <param name="signalID"><see cref="T:System.Guid"/> based signal ID associated with this <see cref="T:TimeSeriesFramework.MeasurementKey"/>, if defined.</param>
            <param name="key">Output <see cref="T:TimeSeriesFramework.MeasurementKey"/> in which to stored parsed value.</param>
            <returns>A <c>true</c> if <see cref="T:TimeSeriesFramework.MeasurementKey"/>representation contained in <paramref name="value"/> could be parsed; otherwise <c>false</c>.</returns>
        </member>
        <member name="M:TimeSeriesFramework.MeasurementKey.EstablishDefaultCache(System.Data.IDbConnection,System.Type,System.String)">
            <summary>
            Establish default <see cref="T:TimeSeriesFramework.MeasurementKey"/> cache.
            </summary>
            <param name="connection">The database connection.</param>
            <param name="adapterType">The database adapter type.</param>
            <param name="measurementTable">Measurement table name used to load measurement key cache.</param>
            <remarks>
            Source tables are expected to have at least the following fields:
            <code>
                 ID          NVARCHAR    Measurement key formatted as: ArchiveSource:PointID
                 SignalID    GUID        Unique identification for measurement
            </code>
            </remarks>
        </member>
        <member name="M:TimeSeriesFramework.MeasurementKey.CreateUndefinedMeasurementKey">
            <summary>
            Creates the undefined measurement key. Used to initialize <see cref="F:TimeSeriesFramework.MeasurementKey.Undefined"/>.
            </summary>
            <returns>The undefined measurement key.</returns>
        </member>
        <member name="P:TimeSeriesFramework.MeasurementKey.SignalID">
            <summary>
            Gets or sets <see cref="T:System.Guid"/> ID of signal associated with this <see cref="T:TimeSeriesFramework.MeasurementKey"/>.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.MeasurementKey.ID">
            <summary>
            Gets or sets the numeric ID of this <see cref="T:TimeSeriesFramework.MeasurementKey"/>.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.MeasurementKey.Source">
            <summary>
            Gets or sets the source of this <see cref="T:TimeSeriesFramework.MeasurementKey"/>.
            </summary>
            <remarks>
            This value is typically used to track the archive name in which the measurement, that this <see cref="T:TimeSeriesFramework.MeasurementKey"/> represents, is stored.
            </remarks>
        </member>
        <member name="T:TimeSeriesFramework.MeasurementKeyComparer">
            <summary>
            Represents an instance of the <see cref="T:System.Collections.Generic.IEqualityComparer`1"/> for a <see cref="T:TimeSeriesFramework.MeasurementKey"/>.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.MeasurementKeyComparer.Equals(TimeSeriesFramework.MeasurementKey,TimeSeriesFramework.MeasurementKey)">
            <summary>
            Determines whether the specified objects are equal.
            </summary>
            <param name="x">The first <see cref="T:TimeSeriesFramework.MeasurementKey"/> to compare.</param>
            <param name="y">The second <see cref="T:TimeSeriesFramework.MeasurementKey"/> to compare.</param>
            <returns>true if the specified objects are equal; otherwise, false.</returns>
        </member>
        <member name="M:TimeSeriesFramework.MeasurementKeyComparer.GetHashCode(TimeSeriesFramework.MeasurementKey)">
            <summary>
            Returns a hash code for the specified object.
            </summary>
            <param name="obj">The <see cref="T:TimeSeriesFramework.MeasurementKey"/> for which a hash code is to be returned.</param>
            <returns>A hash code for the specified object.</returns>
        </member>
        <member name="P:TimeSeriesFramework.MeasurementKeyComparer.Default">
            <summary>
            Returns the default instance of the <see cref="T:TimeSeriesFramework.MeasurementKeyComparer"/> class.
            </summary>
        </member>
        <member name="T:TimeSeriesFramework.NamespaceDoc">
            <summary>
            Contains classes used to abstractly define time-series measured values and provide mechanisms for managing measurements.
            </summary>
        </member>
        <member name="T:TimeSeriesFramework.Adapters.ActionAdapterBase">
            <summary>
            Represents the base class for action adapters.
            </summary>
            <remarks>
            This base class acts as a measurement concentrator which time aligns all incoming measurements for proper processing.
            Derived classes are expected to override <see cref="M:TimeSeriesFramework.ConcentratorBase.PublishFrame(TimeSeriesFramework.IFrame,System.Int32)"/> to handle time aligned measurements
            and call <see cref="M:TimeSeriesFramework.Adapters.ActionAdapterBase.OnNewMeasurements(System.Collections.Generic.ICollection{TimeSeriesFramework.IMeasurement})"/> for any new measurements that may get created.
            </remarks>
        </member>
        <member name="T:TimeSeriesFramework.Adapters.IActionAdapter">
            <summary>
            Represents thet abstract interface for any action adapter.
            </summary>
        </member>
        <member name="T:TimeSeriesFramework.Adapters.IAdapter">
            <summary>
            Represents the abstract interface for any adapter.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.IAdapter.Start">
            <summary>
             Starts the adapter, if it is not already running.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.IAdapter.Stop">
            <summary>
            Stops the adapter.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.IAdapter.GetShortStatus(System.Int32)">
            <summary>
            Gets a short one-line adapter status.
            </summary>
            <param name="maxLength">Maximum number of available characters for display.</param>
            <returns>A short one-line summary of the current adapter status.</returns>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.IAdapter.AssignParentCollection(TimeSeriesFramework.Adapters.IAdapterCollection)">
            <summary>
            Assigns the reference to the parent <see cref="T:TimeSeriesFramework.Adapters.IAdapterCollection"/> that will contain this <see cref="T:TimeSeriesFramework.Adapters.IAdapter"/>.
            </summary>
            <param name="parent">Parent adapter collection.</param>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.IAdapter.WaitForInitialize(System.Int32)">
            <summary>
            Blocks the current thread until the adapter is <see cref="P:TimeSeriesFramework.Adapters.IAdapter.Initialized"/>.
            </summary>
            <param name="timeout">The number of milliseconds to wait.</param>
            <returns><c>true</c> if the initialization succeeds; otherwise, <c>false</c>.</returns>
            <remarks>
            Implementors should create a wait handle (e.g., the <see cref="T:System.Threading.ManualResetEvent"/>) so that consumers
            can call this method and wait for the adapter intialization to complete before using the adapter.
            </remarks>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.IAdapter.GetExternalEventHandle(System.String)">
            <summary>
            Gets a common wait handle for inter-adapter synchronization.
            </summary>
            <param name="name">Case-insensitive wait handle name.</param>
            <returns>A <see cref="T:System.Threading.AutoResetEvent"/> based wait handle associated with the given <paramref name="name"/>.</returns>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.IAdapter.SetTemporalConstraint(System.String,System.String,System.String)">
            <summary>
            Defines a temporal processing constraint for the adapter.
            </summary>
            <param name="startTime">Defines a relative or exact start time for the temporal constraint.</param>
            <param name="stopTime">Defines a relative or exact stop time for the temporal constraint.</param>
            <param name="constraintParameters">Defines any temporal parameters related to the constraint.</param>
            <remarks>
            <para>
            This method defines a temporal processing contraint for an adapter, i.e., the start and stop time over which an
            adapter will process data. Actual implementation of the constraint will be adapter specific. Implementations
            should be able to dynamically handle multitple calls to this function with new constraints. Passing in <c>null</c>
            for the <paramref name="startTime"/> and <paramref name="stopTime"/> should cancel the temporal constraint and
            return the adapter to standard / real-time operation.
            </para>
            <para>
            The <paramref name="startTime"/> and <paramref name="stopTime"/> parameters can be specified in one of the
            following formats:
            <list type="table">
                <listheader>
                    <term>Time Format</term>
                    <description>Format Description</description>
                </listheader>
                <item>
                    <term>12-30-2000 23:59:59.033</term>
                    <description>Absolute date and time.</description>
                </item>
                <item>
                    <term>*</term>
                    <description>Evaluates to <see cref="P:System.DateTime.UtcNow"/>.</description>
                </item>
                <item>
                    <term>*-20s</term>
                    <description>Evaluates to 20 seconds before <see cref="P:System.DateTime.UtcNow"/>.</description>
                </item>
                <item>
                    <term>*-10m</term>
                    <description>Evaluates to 10 minutes before <see cref="P:System.DateTime.UtcNow"/>.</description>
                </item>
                <item>
                    <term>*-1h</term>
                    <description>Evaluates to 1 hour before <see cref="P:System.DateTime.UtcNow"/>.</description>
                </item>
                <item>
                    <term>*-1d</term>
                    <description>Evaluates to 1 day before <see cref="P:System.DateTime.UtcNow"/>.</description>
                </item>
            </list>
            </para>
            </remarks>
        </member>
        <member name="E:TimeSeriesFramework.Adapters.IAdapter.StatusMessage">
            <summary>
            Provides status messages to consumer.
            </summary>
            <remarks>
            <see cref="F:TVA.EventArgs`1.Argument"/> is new status message.
            </remarks>
        </member>
        <member name="E:TimeSeriesFramework.Adapters.IAdapter.ProcessException">
            <summary>
            Event is raised when there is an exception encountered while processing.
            </summary>
            <remarks>
            <para>
            Implementations of this interface are expected to capture any exceptions that might be thrown by
            user code in any processing to prevent third-party code from causing an unhandled exception
            in the host.  Errors are reported via this event so host administrators will be aware of the exception.
            Any needed connection cycle to data adapter should be restarted when an exception is encountered.
            </para>
            <para>
            <see cref="F:TVA.EventArgs`1.Argument"/> is the exception that was thrown.
            </para>
            </remarks>
        </member>
        <member name="E:TimeSeriesFramework.Adapters.IAdapter.InputMeasurementKeysUpdated">
            <summary>
            Event is raised when <see cref="P:TimeSeriesFramework.Adapters.IAdapter.InputMeasurementKeys"/> are updated.
            </summary>
        </member>
        <member name="E:TimeSeriesFramework.Adapters.IAdapter.OutputMeasurementsUpdated">
            <summary>
            Event is raised when <see cref="P:TimeSeriesFramework.Adapters.IAdapter.OutputMeasurements"/> are updated.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.IAdapter.DataSource">
            <summary>
            Gets or sets <see cref="T:System.Data.DataSet"/> based data source available to <see cref="T:TimeSeriesFramework.Adapters.IAdapter"/>.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.IAdapter.ConnectionString">
            <summary>
            Gets or sets key/value pair connection information specific to <see cref="T:TimeSeriesFramework.Adapters.IAdapter"/>.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.IAdapter.Settings">
            <summary>
            Gets settings <see cref="T:System.Collections.Generic.Dictionary`2"/> parsed when <see cref="P:TimeSeriesFramework.Adapters.IAdapter.ConnectionString"/> was assigned.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.IAdapter.Parent">
            <summary>
            Gets a read-only reference to the collection that contains this <see cref="T:TimeSeriesFramework.Adapters.IAdapter"/>.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.IAdapter.Name">
            <summary>
            Gets or sets name of this <see cref="T:TimeSeriesFramework.Adapters.IAdapter"/>.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.IAdapter.ID">
            <summary>
            Gets or sets the numeric ID associated with this <see cref="T:TimeSeriesFramework.Adapters.IAdapter"/>.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.IAdapter.Initialized">
            <summary>
            Gets or sets flag indicating if the adapter has been initialized successfully.
            </summary>
            <remarks>
            Implementors only need to track this value.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.IAdapter.InitializationTimeout">
            <summary>
            Gets or sets maximum time system will wait during <see cref="M:TimeSeriesFramework.Adapters.IAdapter.Start"/> for initialization.
            </summary>
            <remarks>
            Implementors should use value <see cref="F:System.Threading.Timeout.Infinite"/> to wait indefinitely.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.IAdapter.AutoStart">
            <summary>
            Gets or sets flag indicating if adapter should automatically start or connect on demand.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.IAdapter.ProcessMeasurementFilter">
            <summary>
            Gets or sets flag that determines if measurements being queued for processing should be tested to see if they are in the <see cref="P:TimeSeriesFramework.Adapters.IAdapter.InputMeasurementKeys"/>.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.IAdapter.InputMeasurementKeys">
            <summary>
            Gets or sets primary keys of input measurements the adapter expects.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.IAdapter.OutputMeasurements">
            <summary>
            Gets or sets output measurements that the adapter will produce, if any.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.IAdapter.ProcessedMeasurements">
            <summary>
            Gets the total number of measurements processed thus far by the <see cref="T:TimeSeriesFramework.Adapters.IAdapter"/>.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.IAdapter.SupportsTemporalProcessing">
            <summary>
            Gets the flag indicating if this adapter supports temporal processing.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.IAdapter.StartTimeConstraint">
            <summary>
            Gets the start time temporal procesing constraint defined by call to <see cref="M:TimeSeriesFramework.Adapters.IAdapter.SetTemporalConstraint(System.String,System.String,System.String)"/>.
            </summary>
            <remarks>
            This value will be <see cref="F:System.DateTime.MinValue"/> when start time constraint is not set - meaning the adapter
            is processing data in real-time.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.IAdapter.StopTimeConstraint">
            <summary>
            Gets the stop time temporal processing constraint defined by call to <see cref="M:TimeSeriesFramework.Adapters.IAdapter.SetTemporalConstraint(System.String,System.String,System.String)"/>.
            </summary>
            <remarks>
            This value will be <see cref="F:System.DateTime.MaxValue"/> when stop time constraint is not set - meaning the adapter
            is processing data in real-time.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.IAdapter.ProcessingInterval">
            <summary>
            Gets or sets the desired processing interval, in milliseconds, for the adapter.
            </summary>
            <remarks>
            With the exception of the values of -1 and 0, this value specifies the desired processing interval for data, i.e.,
            basically a delay, or timer interval, overwhich to process data. A value of -1 means to use the default processing
            interval while a value of 0 means to process data as fast as possible.
            </remarks>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.IActionAdapter.QueueMeasurementsForProcessing(System.Collections.Generic.IEnumerable{TimeSeriesFramework.IMeasurement})">
            <summary>
            Queues measurements for processing.  Measurements are automatically filtered to the defined <see cref="P:TimeSeriesFramework.Adapters.IAdapter.InputMeasurementKeys"/>.
            </summary>
            <param name="measurements">Collection of measurements to queue for calculation processing.</param>
        </member>
        <member name="E:TimeSeriesFramework.Adapters.IActionAdapter.NewMeasurements">
            <summary>
            Provides new measurements from action adapter.
            </summary>
            <remarks>
            <see cref="F:TVA.EventArgs`1.Argument"/> is a collection of new measurements for host to process.
            </remarks>
        </member>
        <member name="E:TimeSeriesFramework.Adapters.IActionAdapter.UnpublishedSamples">
            <summary>
            This event is raised every five seconds allowing consumer to track current number of unpublished seconds of data in the queue.
            </summary>
            <remarks>
            <see cref="F:TVA.EventArgs`1.Argument"/> is the total number of unpublished seconds of data.
            </remarks>
        </member>
        <member name="E:TimeSeriesFramework.Adapters.IActionAdapter.DiscardingMeasurements">
            <summary>
            This event is raised if there are any measurements being discarded during the sorting process.
            </summary>
            <remarks>
            <see cref="F:TVA.EventArgs`1.Argument"/> is the enumeration of <see cref="T:TimeSeriesFramework.IMeasurement"/> values that are being discarded during the sorting process.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.IActionAdapter.RespectInputDemands">
            <summary>
            Gets or sets flag indicating if action adapter should respect auto-start requests based on input demands.
            </summary>
            <remarks>
            Action adapters are in the curious position of being able to both consume and produce points, as such the user needs to be able to control how their
            adapter will behave concerning routing demands when the adapter is setup to connect on demand. In the case of respecting auto-start input demands,
            as an example, this would be <c>false</c> for an action adapter that calculated measurement, but <c>true</c> for an action adapter used to archive inputs.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.IActionAdapter.RespectOutputDemands">
            <summary>
            Gets or sets flag indicating if action adapter should respect auto-start requests based on output demands.
            </summary>
            <remarks>
            Action adapters are in the curious position of being able to both consume and produce points, as such the user needs to be able to control how their
            adapter will behave concerning routing demands when the adapter is setup to connect on demand. In the case of respecting auto-start output demands,
            as an example, this would be <c>true</c> for an action adapter that calculated measurement, but <c>false</c> for an action adapter used to archive inputs.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.IActionAdapter.InputSourceIDs">
            <summary>
            Gets or sets <see cref="P:TimeSeriesFramework.MeasurementKey.Source"/> values used to filter input measurement keys.
            </summary>
            <remarks>
            This allows an adapter to associate itself with entire collections of measurements based on the source of the measurement keys.
            Set to <c>null</c> apply no filter.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.IActionAdapter.OutputSourceIDs">
            <summary>
            Gets or sets <see cref="P:TimeSeriesFramework.MeasurementKey.Source"/> values used to filter output measurements.
            </summary>
            <remarks>
            This allows an adapter to associate itself with entire collections of measurements based on the source of the measurement keys.
            Set to <c>null</c> apply no filter.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.IActionAdapter.RequestedInputMeasurementKeys">
            <summary>
            Gets or sets input measurement keys that are requested by other adapters based on what adapter says it can provide.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.IActionAdapter.RequestedOutputMeasurementKeys">
            <summary>
            Gets or sets output measurement keys that are requested by other adapters based on what adapter says it can provide.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.ActionAdapterBase.#ctor">
            <summary>
            Creates a new <see cref="T:TimeSeriesFramework.Adapters.ActionAdapterBase"/>.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.ActionAdapterBase.Dispose(System.Boolean)">
            <summary>
            Releases the unmanaged resources used by the <see cref="T:TimeSeriesFramework.Adapters.ActionAdapterBase"/> object and optionally releases the managed resources.
            </summary>
            <param name="disposing">true to release both managed and unmanaged resources; false to release only unmanaged resources.</param>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.ActionAdapterBase.Initialize">
            <summary>
            Initializes <see cref="T:TimeSeriesFramework.Adapters.ActionAdapterBase"/>.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.ActionAdapterBase.Start">
            <summary>
            Starts the <see cref="T:TimeSeriesFramework.Adapters.ActionAdapterBase"/> or restarts it if it is already running.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.ActionAdapterBase.Stop">
            <summary>
            Stops the <see cref="T:TimeSeriesFramework.Adapters.ActionAdapterBase"/>.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.ActionAdapterBase.ExamineQueueState">
            <summary>
            Examines the concentrator frame queue state of the <see cref="T:TimeSeriesFramework.Adapters.ActionAdapterBase"/>.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.ActionAdapterBase.AssignParentCollection(TimeSeriesFramework.Adapters.IAdapterCollection)">
            <summary>
            Assigns the reference to the parent <see cref="T:TimeSeriesFramework.Adapters.IAdapterCollection"/> that will contain this <see cref="T:TimeSeriesFramework.Adapters.ActionAdapterBase"/>.
            </summary>
            <param name="parent">Parent adapter collection.</param>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.ActionAdapterBase.GetExternalEventHandle(System.String)">
            <summary>
            Gets a common wait handle for inter-adapter synchronization.
            </summary>
            <param name="name">Case-insensitive wait handle name.</param>
            <returns>A <see cref="T:System.Threading.AutoResetEvent"/> based wait handle associated with the given <paramref name="name"/>.</returns>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.ActionAdapterBase.ResetStatistics">
            <summary>
            Resets the statistics of the <see cref="T:TimeSeriesFramework.Adapters.ActionAdapterBase"/>.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.ActionAdapterBase.SetInitializedState(System.Boolean)">
            <summary>
            Manually sets the intialized state of the <see cref="T:TimeSeriesFramework.Adapters.AdapterBase"/>.
            </summary>
            <param name="initialized">Desired initialized state.</param>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.ActionAdapterBase.GetShortStatus(System.Int32)">
            <summary>
            Gets a short one-line status of this <see cref="T:TimeSeriesFramework.Adapters.ActionAdapterBase"/>.
            </summary>
            <param name="maxLength">Maximum number of available characters for display.</param>
            <returns>A short one-line summary of the current status of this <see cref="T:TimeSeriesFramework.Adapters.AdapterBase"/>.</returns>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.ActionAdapterBase.QueueMeasurementForProcessing(TimeSeriesFramework.IMeasurement)">
            <summary>
            Queues a single measurement for processing. Measurements is automatically filtered to the defined <see cref="P:TimeSeriesFramework.Adapters.IAdapter.InputMeasurementKeys"/>.
            </summary>
            <param name="measurement">Measurement to queue for processing.</param>
            <remarks>
            Measurement is filtered against the defined <see cref="P:TimeSeriesFramework.Adapters.ActionAdapterBase.InputMeasurementKeys"/>.
            </remarks>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.ActionAdapterBase.QueueMeasurementsForProcessing(System.Collections.Generic.IEnumerable{TimeSeriesFramework.IMeasurement})">
            <summary>
            Queues a collection of measurements for processing. Measurements are automatically filtered to the defined <see cref="P:TimeSeriesFramework.Adapters.IAdapter.InputMeasurementKeys"/>.
            </summary>
            <param name="measurements">Collection of measurements to queue for processing.</param>
            <remarks>
            Measurements are filtered against the defined <see cref="P:TimeSeriesFramework.Adapters.ActionAdapterBase.InputMeasurementKeys"/>.
            </remarks>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.ActionAdapterBase.IsInputMeasurement(TimeSeriesFramework.MeasurementKey)">
            <summary>
            Determines if specified measurement key is defined in <see cref="P:TimeSeriesFramework.Adapters.ActionAdapterBase.InputMeasurementKeys"/>.
            </summary>
            <param name="item">Primary key of measurement to find.</param>
            <returns>true if specified measurement key is defined in <see cref="P:TimeSeriesFramework.Adapters.ActionAdapterBase.InputMeasurementKeys"/>.</returns>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.ActionAdapterBase.WaitForInitialize(System.Int32)">
            <summary>
            Blocks the <see cref="P:System.Threading.Thread.CurrentThread"/> until the action adapter is <see cref="P:TimeSeriesFramework.Adapters.ActionAdapterBase.Initialized"/>.
            </summary>
            <param name="timeout">The number of milliseconds to wait.</param>
            <returns><c>true</c> if the initialization succeeds; otherwise, <c>false</c>.</returns>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.ActionAdapterBase.SetTemporalConstraint(System.String,System.String,System.String)">
            <summary>
            Defines a temporal processing constraint for the adapter.
            </summary>
            <param name="startTime">Defines a relative or exact start time for the temporal constraint.</param>
            <param name="stopTime">Defines a relative or exact stop time for the temporal constraint.</param>
            <param name="constraintParameters">Defines any temporal parameters related to the constraint.</param>
            <remarks>
            <para>
            This method defines a temporal processing contraint for an adapter, i.e., the start and stop time over which an
            adapter will process data. Actual implementation of the constraint will be adapter specific. Implementations
            should be able to dynamically handle multitple calls to this function with new constraints. Passing in <c>null</c>
            for the <paramref name="startTime"/> and <paramref name="stopTime"/> should cancel the temporal constraint and
            return the adapter to standard / real-time operation.
            </para>
            <para>
            The <paramref name="startTime"/> and <paramref name="stopTime"/> parameters can be specified in one of the
            following formats:
            <list type="table">
                <listheader>
                    <term>Time Format</term>
                    <description>Format Description</description>
                </listheader>
                <item>
                    <term>12-30-2000 23:59:59.033</term>
                    <description>Absolute date and time.</description>
                </item>
                <item>
                    <term>*</term>
                    <description>Evaluates to <see cref="P:System.DateTime.UtcNow"/>.</description>
                </item>
                <item>
                    <term>*-20s</term>
                    <description>Evaluates to 20 seconds before <see cref="P:System.DateTime.UtcNow"/>.</description>
                </item>
                <item>
                    <term>*-10m</term>
                    <description>Evaluates to 10 minutes before <see cref="P:System.DateTime.UtcNow"/>.</description>
                </item>
                <item>
                    <term>*-1h</term>
                    <description>Evaluates to 1 hour before <see cref="P:System.DateTime.UtcNow"/>.</description>
                </item>
                <item>
                    <term>*-1d</term>
                    <description>Evaluates to 1 day before <see cref="P:System.DateTime.UtcNow"/>.</description>
                </item>
            </list>
            </para>
            </remarks>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.ActionAdapterBase.GetHashCode">
            <summary>
            Serves as a hash function for the current <see cref="T:TimeSeriesFramework.Adapters.ActionAdapterBase"/>.
            </summary>
            <returns>A hash code for the current <see cref="T:TimeSeriesFramework.Adapters.ActionAdapterBase"/>.</returns>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.ActionAdapterBase.TryGetMinimumNeededMeasurements(TimeSeriesFramework.IFrame,TimeSeriesFramework.IMeasurement[]@)">
            <summary>
            Attempts to retrieve the minimum needed number of measurements from the frame (as specified by MinimumMeasurementsToUse)
            </summary>
            <param name="frame">Source frame for the measurements</param>
            <param name="measurements">Return array of measurements</param>
            <returns>True if minimum needed number of measurements were returned in measurement array</returns>
            <remarks>
            <para>
            Remember this function will *only* return the minimum needed number of measurements, no more.  If you want to use
            all available measurements in your adapter you should just use Frame.Measurements.Values directly.
            </para>
            <para>
            Note that the measurements array parameter will be created if the reference is null, otherwise if caller creates
            array it must be sized to MinimumMeasurementsToUse
            </para>
            </remarks>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.ActionAdapterBase.OnNewMeasurements(System.Collections.Generic.ICollection{TimeSeriesFramework.IMeasurement})">
            <summary>
            Raises the <see cref="E:TimeSeriesFramework.Adapters.ActionAdapterBase.NewMeasurements"/> event.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.ActionAdapterBase.OnStatusMessage(System.String)">
            <summary>
            Raises the <see cref="E:TimeSeriesFramework.Adapters.ActionAdapterBase.StatusMessage"/> event.
            </summary>
            <param name="status">New status message.</param>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.ActionAdapterBase.OnStatusMessage(System.String,System.Object[])">
            <summary>
            Raises the <see cref="E:TimeSeriesFramework.Adapters.ActionAdapterBase.StatusMessage"/> event with a formatted status message.
            </summary>
            <param name="formattedStatus">Formatted status message.</param>
            <param name="args">Arguments for <paramref name="formattedStatus"/>.</param>
            <remarks>
            This overload combines string.Format and SendStatusMessage for convienence.
            </remarks>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.ActionAdapterBase.OnInputMeasurementKeysUpdated">
            <summary>
            Raises <see cref="E:TimeSeriesFramework.Adapters.ActionAdapterBase.InputMeasurementKeysUpdated"/> event.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.ActionAdapterBase.OnOutputMeasurementsUpdated">
            <summary>
            Raises <see cref="E:TimeSeriesFramework.Adapters.ActionAdapterBase.OutputMeasurementsUpdated"/> event.
            </summary>
        </member>
        <member name="E:TimeSeriesFramework.Adapters.ActionAdapterBase.StatusMessage">
            <summary>
            Provides status messages to consumer.
            </summary>
            <remarks>
            <see cref="F:TVA.EventArgs`1.Argument"/> is new status message.
            </remarks>
        </member>
        <member name="E:TimeSeriesFramework.Adapters.ActionAdapterBase.InputMeasurementKeysUpdated">
            <summary>
            Event is raised when <see cref="P:TimeSeriesFramework.Adapters.ActionAdapterBase.InputMeasurementKeys"/> are updated.
            </summary>
        </member>
        <member name="E:TimeSeriesFramework.Adapters.ActionAdapterBase.OutputMeasurementsUpdated">
            <summary>
            Event is raised when <see cref="P:TimeSeriesFramework.Adapters.ActionAdapterBase.OutputMeasurements"/> are updated.
            </summary>
        </member>
        <member name="E:TimeSeriesFramework.Adapters.ActionAdapterBase.NewMeasurements">
            <summary>
            Provides new measurements from action adapter.
            </summary>
            <remarks>
            <see cref="F:TVA.EventArgs`1.Argument"/> is a collection of new measurements for host to process.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.ActionAdapterBase.ConnectionString">
            <summary>
            Gets or sets key/value pair connection information specific to action adapter.
            </summary>
            <remarks>
            <para>
            Example connection string using manually defined measurements:<br/>
            <c>framesPerSecond=30; lagTime=1.0; leadTime=0.5; minimumMeasurementsToUse=-1;
            useLocalClockAsRealTime=true; allowSortsByArrival=false;</c><br/>
            <c>inputMeasurementKeys={P1:1245;P1:1247;P2:1335};</c><br/>
            <c>outputMeasurements={P3:1345,60.0,1.0;P3:1346;P3:1347}</c><br/>
            When defined manually, elements in key:<br/>
            * inputMeasurementKeys are defined as "ArchiveSource:PointID"<br/>
            * outputMeasurements are defined as "ArchiveSource:PointID,Adder,Multiplier", the adder and multiplier are optional
            defaulting to 0.0 and 1.0 respectively.
            <br/>
            </para>
            <para>
            Example connection string using measurements defined in a <see cref="P:TimeSeriesFramework.Adapters.ActionAdapterBase.DataSource"/> table:<br/>
            <c>framesPerSecond=30; lagTime=1.0; leadTime=0.5; minimumMeasurementsToUse=-1;
            useLocalClockAsRealTime=true; allowSortsByArrival=false;</c><br/>
            <c>inputMeasurementKeys={FILTER ActiveMeasurements WHERE Company='TVA' AND SignalType='FREQ' ORDER BY ID};</c><br/>
            <c>outputMeasurements={FILTER ActiveMeasurements WHERE SignalType IN ('IPHA','VPHA') AND Phase='+'}</c><br/>
            <br/>
            Basic filtering syntax is as follows:<br/>
            <br/>
                {FILTER &lt;TableName&gt; WHERE &lt;Expression&gt; [ORDER BY &lt;SortField&gt;]}<br/>
            <br/>
            Source tables are expected to have at least the following fields:<br/>
            <list type="table">
                <listheader>
                    <term>Name</term>
                    <term>Type</term>
                    <description>Description.</description>
                </listheader>
                <item>
                    <term>ID</term>
                    <term>NVARCHAR</term>
                    <description>Measurement key formatted as: ArchiveSource:PointID.</description>
                </item>
                <item>
                    <term>PointTag</term>
                    <term>NVARCHAR</term>
                    <description>Point tag of measurement.</description>
                </item>
                <item>
                    <term>Adder</term>
                    <term>FLOAT</term>
                    <description>Adder to apply to value, if any (default to 0.0).</description>
                </item>
                <item>
                    <term>Multiplier</term>
                    <term>FLOAT</term>
                    <description>Multipler to apply to value, if any (default to 1.0).</description>
                </item>
            </list>
            </para>
            <para>
            Note that framesPerSecond, lagTime and leadTime are required parameters, all other parameters are optional.
            </para>
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.ActionAdapterBase.Parent">
            <summary>
            Gets a read-only reference to the collection that contains this <see cref="T:TimeSeriesFramework.Adapters.ActionAdapterBase"/>.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.ActionAdapterBase.DataSource">
            <summary>
            Gets or sets <see cref="T:System.Data.DataSet"/> based data source available to this <see cref="T:TimeSeriesFramework.Adapters.ActionAdapterBase"/>.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.ActionAdapterBase.InitializationTimeout">
            <summary>
            Gets or sets maximum time system will wait during <see cref="M:TimeSeriesFramework.Adapters.ActionAdapterBase.Start"/> for initialization.
            </summary>
            <remarks>
            Set to <see cref="F:System.Threading.Timeout.Infinite"/> to wait indefinitely.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.ActionAdapterBase.AutoStart">
            <summary>
            Gets or sets flag indicating if adapter should automatically start or otherwise connect on demand.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.ActionAdapterBase.RespectInputDemands">
            <summary>
            Gets or sets flag indicating if action adapter should respect auto-start requests based on input demands.
            </summary>
            <remarks>
            Action adapters are in the curious position of being able to both consume and produce points, as such the user needs to be able to control how their
            adapter will behave concerning routing demands when the adapter is setup to connect on demand. In the case of respecting auto-start input demands,
            as an example, this would be <c>false</c> for an action adapter that calculated measurement, but <c>true</c> for an action adapter used to archive inputs.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.ActionAdapterBase.RespectOutputDemands">
            <summary>
            Gets or sets flag indicating if action adapter should respect auto-start requests based on output demands.
            </summary>
            <remarks>
            Action adapters are in the curious position of being able to both consume and produce points, as such the user needs to be able to control how their
            adapter will behave concerning routing demands when the adapter is setup to connect on demand. In the case of respecting auto-start output demands,
            as an example, this would be <c>true</c> for an action adapter that calculated measurement, but <c>false</c> for an action adapter used to archive inputs.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.ActionAdapterBase.ProcessMeasurementFilter">
            <summary>
            Gets or sets flag that determines if measurements being queued for processing should be tested to see if they are in the <see cref="P:TimeSeriesFramework.Adapters.ActionAdapterBase.InputMeasurementKeys"/>.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.ActionAdapterBase.FramesPerSecond">
            <summary>
            Gets or sets the number of frames per second.
            </summary>
            <remarks>
            Valid frame rates for a <see cref="T:TimeSeriesFramework.ConcentratorBase"/> are greater than 0 frames per second.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.ActionAdapterBase.LagTime">
            <summary>
            Gets or sets the allowed past time deviation tolerance, in seconds (can be subsecond).
            </summary>
            <remarks>
            <para>Defines the time sensitivity to past measurement timestamps.</para>
            <para>The number of seconds allowed before assuming a measurement timestamp is too old.</para>
            <para>This becomes the amount of delay introduced by the concentrator to allow time for data to flow into the system.</para>
            </remarks>
            <exception cref="T:System.ArgumentOutOfRangeException">LagTime must be greater than zero, but it can be less than one.</exception>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.ActionAdapterBase.LeadTime">
            <summary>
            Gets or sets the allowed future time deviation tolerance, in seconds (can be subsecond).
            </summary>
            <remarks>
            <para>Defines the time sensitivity to future measurement timestamps.</para>
            <para>The number of seconds allowed before assuming a measurement timestamp is too advanced.</para>
            <para>This becomes the tolerated +/- accuracy of the local clock to real-time.</para>
            </remarks>
            <exception cref="T:System.ArgumentOutOfRangeException">LeadTime must be greater than zero, but it can be less than one.</exception>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.ActionAdapterBase.InputMeasurementKeys">
            <summary>
            Gets or sets primary keys of input measurements the action adapter expects.
            </summary>
            <remarks>
            If your adapter needs to receive all measurements, you must explicitly set InputMeasurementKeys to null.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.ActionAdapterBase.OutputMeasurements">
            <summary>
            Gets or sets output measurements that the action adapter will produce, if any.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.ActionAdapterBase.InputSourceIDs">
            <summary>
            Gets or sets <see cref="P:TimeSeriesFramework.MeasurementKey.Source"/> values used to filter input measurement keys.
            </summary>
            <remarks>
            This allows an adapter to associate itself with entire collections of measurements based on the source of the measurement keys.
            Set to <c>null</c> apply no filter.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.ActionAdapterBase.OutputSourceIDs">
            <summary>
            Gets or sets <see cref="P:TimeSeriesFramework.MeasurementKey.Source"/> values used to filter output measurements.
            </summary>
            <remarks>
            This allows an adapter to associate itself with entire collections of measurements based on the source of the measurement keys.
            Set to <c>null</c> apply no filter.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.ActionAdapterBase.RequestedInputMeasurementKeys">
            <summary>
            Gets or sets input measurement keys that are requested by other adapters based on what adapter says it can provide.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.ActionAdapterBase.RequestedOutputMeasurementKeys">
            <summary>
            Gets or sets output measurement keys that are requested by other adapters based on what adapter says it can provide.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.ActionAdapterBase.SupportsTemporalProcessing">
            <summary>
            Gets the flag indicating if this adapter supports temporal processing.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.ActionAdapterBase.StartTimeConstraint">
            <summary>
            Gets the start time temporal procesing constraint defined by call to <see cref="M:TimeSeriesFramework.Adapters.ActionAdapterBase.SetTemporalConstraint(System.String,System.String,System.String)"/>.
            </summary>
            <remarks>
            This value will be <see cref="F:System.DateTime.MinValue"/> when start time constraint is not set - meaning the adapter
            is processing data in real-time.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.ActionAdapterBase.StopTimeConstraint">
            <summary>
            Gets the stop time temporal processing constraint defined by call to <see cref="M:TimeSeriesFramework.Adapters.ActionAdapterBase.SetTemporalConstraint(System.String,System.String,System.String)"/>.
            </summary>
            <remarks>
            This value will be <see cref="F:System.DateTime.MaxValue"/> when stop time constraint is not set - meaning the adapter
            is processing data in real-time.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.ActionAdapterBase.MinimumMeasurementsToUse">
            <summary>
            Gets or sets minimum number of input measurements required for adapter.  Set to -1 to require all.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.ActionAdapterBase.Name">
            <summary>
            Gets name of the action adapter.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.ActionAdapterBase.ID">
            <summary>
            Gets or sets numeric ID associated with this action adapter.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.ActionAdapterBase.Initialized">
            <summary>
            Gets or sets flag indicating if the action adapter has been initialized successfully.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.ActionAdapterBase.Settings">
            <summary>
            Gets settings <see cref="T:System.Collections.Generic.Dictionary`2"/> parsed when <see cref="P:TimeSeriesFramework.Adapters.ActionAdapterBase.ConnectionString"/> was assigned.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.ActionAdapterBase.Status">
            <summary>
            Returns the detailed status of the action adapter.
            </summary>
            <remarks>
            Derived classes should extend status with implementation specific information.
            </remarks>
        </member>
        <member name="T:TimeSeriesFramework.Adapters.ActionAdapterCollection">
            <summary>
            Represents a collection of <see cref="T:TimeSeriesFramework.Adapters.IActionAdapter"/> implementations.
            </summary>
        </member>
        <member name="T:TimeSeriesFramework.Adapters.AdapterCollectionBase`1">
            <summary>
            Represents a collection of <see cref="T:TimeSeriesFramework.Adapters.IAdapter"/> implementations.
            </summary>
            <typeparam name="T">Type of <see cref="T:TimeSeriesFramework.Adapters.IAdapter"/> this collection contains.</typeparam>
        </member>
        <member name="T:TimeSeriesFramework.Adapters.IAdapterCollection">
            <summary>
            Represents the abstract interface for a collection of adapters.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.IAdapterCollection.ResetStatistics">
            <summary>
            Resets the statistics of this collection.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.IAdapterCollection.TryGetAdapterByID(System.UInt32,TimeSeriesFramework.Adapters.IAdapter@)">
            <summary>
            Attempts to get the adapter with the specified <paramref name="id"/>.
            </summary>
            <param name="id">ID of adapter to get.</param>
            <param name="adapter">Adapter reference if found; otherwise null.</param>
            <returns><c>true</c> if adapter with the specified <paramref name="id"/> was found; otherwise <c>false</c>.</returns>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.IAdapterCollection.TryGetAdapterByName(System.String,TimeSeriesFramework.Adapters.IAdapter@)">
            <summary>
            Attempts to get the adapter with the specified <paramref name="name"/>.
            </summary>
            <param name="name">Name of adapter to get.</param>
            <param name="adapter">Adapter reference if found; otherwise null.</param>
            <returns><c>true</c> if adapter with the specified <paramref name="name"/> was found; otherwise <c>false</c>.</returns>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.IAdapterCollection.TryCreateAdapter(System.Data.DataRow,TimeSeriesFramework.Adapters.IAdapter@)">
            <summary>
            Attempts to create an <see cref="T:TimeSeriesFramework.Adapters.IAdapter"/> from the specified <see cref="T:System.Data.DataRow"/>.
            </summary>
            <param name="adapterRow"><see cref="T:System.Data.DataRow"/> containing item information to initialize.</param>
            <param name="adapter">Initialized adapter if successful; otherwise null.</param>
            <returns><c>true</c> if item was successfully initialized; otherwise <c>false</c>.</returns>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.IAdapterCollection.TryInitializeAdapterByID(System.UInt32)">
            <summary>
            Attempts to initialize (or reinitialize) an individual <see cref="T:TimeSeriesFramework.Adapters.IAdapter"/> based on its ID.
            </summary>
            <param name="id">The numeric ID associated with the <see cref="T:TimeSeriesFramework.Adapters.IAdapter"/> to be initialized.</param>
            <returns><c>true</c> if item was successfully initialized; otherwise <c>false</c>.</returns>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.IAdapterCollection.DataMember">
            <summary>
            Gets or sets specific data member (e.g., table name) in <see cref="P:TimeSeriesFramework.Adapters.IAdapter.DataSource"/> used to initialize this <see cref="T:TimeSeriesFramework.Adapters.IAdapterCollection"/>.
            </summary>
            <remarks>
            Table name specified in <see cref="P:TimeSeriesFramework.Adapters.IAdapterCollection.DataMember"/> from <see cref="P:TimeSeriesFramework.Adapters.IAdapter.DataSource"/> is expected
            to have the following table column names:<br/>
            ID, AdapterName, AssemblyName, TypeName, ConnectionString<br/>
            ID column type should be integer based, all other column types are expected to be string based.
            </remarks>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.#ctor(System.Collections.Concurrent.ConcurrentDictionary{System.String,System.Threading.AutoResetEvent})">
            <summary>
            Constructs a new instance of the <see cref="T:TimeSeriesFramework.Adapters.AdapterCollectionBase`1"/>.
            </summary>
            <param name="waitHandles">Wait handle dictionary.</param>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.Finalize">
            <summary>
            Releases the unmanaged resources before the <see cref="T:TimeSeriesFramework.Adapters.AdapterCollectionBase`1"/> object is reclaimed by <see cref="T:System.GC"/>.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.Dispose">
            <summary>
            Releases all the resources used by the <see cref="T:TimeSeriesFramework.Adapters.AdapterCollectionBase`1"/> object.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.Dispose(System.Boolean)">
            <summary>
            Releases the unmanaged resources used by the <see cref="T:TimeSeriesFramework.Adapters.AdapterCollectionBase`1"/> object and optionally releases the managed resources.
            </summary>
            <param name="disposing">true to release both managed and unmanaged resources; false to release only unmanaged resources.</param>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.Initialize">
            <summary>
            Loads all <see cref="T:TimeSeriesFramework.Adapters.IAdapter"/> implementations defined in <see cref="P:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.DataSource"/>.
            </summary>
            <remarks>
            <para>
            Table name specified in <see cref="P:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.DataMember"/> from <see cref="P:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.DataSource"/> is expected
            to have the following table column names:<br/>
            ID, AdapterName, AssemblyName, TypeName, ConnectionString<br/>
            ID column type should be integer based, all other column types are expected to be string based.
            </para>
            <para>
            Note that when calling this method any existing items will be cleared allowing a "re-initialize".
            </para>
            </remarks>
            <exception cref="T:System.NullReferenceException">DataSource is null.</exception>
            <exception cref="T:System.InvalidOperationException">DataMember is null or empty.</exception>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.GetExternalEventHandle(System.String)">
            <summary>
            Gets a common wait handle for inter-adapter synchronization.
            </summary>
            <param name="name">Case-insensitive wait handle name.</param>
            <returns>A <see cref="T:System.Threading.AutoResetEvent"/> based wait handle associated with the given <paramref name="name"/>.</returns>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.TryCreateAdapter(System.Data.DataRow,`0@)">
            <summary>
            Attempts to create an <see cref="T:TimeSeriesFramework.Adapters.IAdapter"/> from the specified <see cref="T:System.Data.DataRow"/>.
            </summary>
            <param name="adapterRow"><see cref="T:System.Data.DataRow"/> containing item information to initialize.</param>
            <param name="adapter">Initialized adapter if successful; otherwise null.</param>
            <returns><c>true</c> if item was successfully initialized; otherwise <c>false</c>.</returns>
            <remarks>
            See <see cref="P:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.DataSource"/> property for expected <see cref="T:System.Data.DataRow"/> column names.
            </remarks>
            <exception cref="T:System.NullReferenceException"><paramref name="adapterRow"/> is null.</exception>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.TryGetAdapterByID(System.UInt32,`0@)">
            <summary>
            Attempts to get the adapter with the specified <paramref name="id"/>.
            </summary>
            <param name="id">ID of adapter to get.</param>
            <param name="adapter">Adapter reference if found; otherwise null.</param>
            <returns><c>true</c> if adapter with the specified <paramref name="id"/> was found; otherwise <c>false</c>.</returns>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.TryGetAdapterByName(System.String,`0@)">
            <summary>
            Attempts to get the adapter with the specified <paramref name="name"/>.
            </summary>
            <param name="name">Name of adapter to get.</param>
            <param name="adapter">Adapter reference if found; otherwise null.</param>
            <returns><c>true</c> if adapter with the specified <paramref name="name"/> was found; otherwise <c>false</c>.</returns>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.TryGetAdapter``1(``0,System.Func{`0,``0,System.Boolean},`0@)">
            <summary>
            Attempts to get the adapter with the specified <paramref name="value"/> given <paramref name="testItem"/> function.
            </summary>
            <param name="value">Value of adapter to get.</param>
            <param name="testItem">Function delegate used to test item <paramref name="value"/>.</param>
            <param name="adapter">Adapter reference if found; otherwise null.</param>
            <returns><c>true</c> if adapter with the specified <paramref name="value"/> was found; otherwise <c>false</c>.</returns>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.TryInitializeAdapterByID(System.UInt32)">
            <summary>
            Attempts to initialize (or reinitialize) an individual <see cref="T:TimeSeriesFramework.Adapters.IAdapter"/> based on its ID.
            </summary>
            <param name="id">The numeric ID associated with the <see cref="T:TimeSeriesFramework.Adapters.IAdapter"/> to be initialized.</param>
            <returns><c>true</c> if item was successfully initialized; otherwise <c>false</c>.</returns>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.Start">
            <summary>
            Starts, or restarts, each <see cref="T:TimeSeriesFramework.Adapters.IAdapter"/> implementation in this <see cref="T:TimeSeriesFramework.Adapters.AdapterCollectionBase`1"/>.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.Stop">
            <summary>
            Stops each <see cref="T:TimeSeriesFramework.Adapters.IAdapter"/> implementation in this <see cref="T:TimeSeriesFramework.Adapters.AdapterCollectionBase`1"/>.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.AssignParentCollection(TimeSeriesFramework.Adapters.IAdapterCollection)">
            <summary>
            Assigns the reference to the parent <see cref="T:TimeSeriesFramework.Adapters.IAdapterCollection"/> that will contain this <see cref="T:TimeSeriesFramework.Adapters.AdapterCollectionBase`1"/>, if any.
            </summary>
            <param name="parent">Parent adapter collection.</param>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.ResetStatistics">
            <summary>
            Resets the statistics of this collection.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.GetShortStatus(System.Int32)">
            <summary>
            Gets a short one-line status of this <see cref="T:TimeSeriesFramework.Adapters.AdapterBase"/>.
            </summary>
            <param name="maxLength">Maximum number of available characters for display.</param>
            <returns>A short one-line summary of the current status of this <see cref="T:TimeSeriesFramework.Adapters.AdapterBase"/>.</returns>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.WaitForInitialize(System.Int32)">
            <summary>
            This method does not wait for <see cref="T:TimeSeriesFramework.Adapters.AdapterCollectionBase`1"/>.
            </summary>
            <param name="timeout">This parameter is ignored.</param>
            <returns><c>true</c> for <see cref="T:TimeSeriesFramework.Adapters.AdapterCollectionBase`1"/>.</returns>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.SetTemporalConstraint(System.String,System.String,System.String)">
            <summary>
            Defines a temporal processing constraint for the adapter collection and applies this contraint to each adapter.
            </summary>
            <param name="startTime">Defines a relative or exact start time for the temporal constraint.</param>
            <param name="stopTime">Defines a relative or exact stop time for the temporal constraint.</param>
            <param name="constraintParameters">Defines any temporal parameters related to the constraint.</param>
            <remarks>
            <para>
            This method defines a temporal processing contraint for an adapter, i.e., the start and stop time over which an
            adapter will process data. Actual implementation of the constraint will be adapter specific. Implementations
            should be able to dynamically handle multitple calls to this function with new constraints. Passing in <c>null</c>
            for the <paramref name="startTime"/> and <paramref name="stopTime"/> should cancel the temporal constraint and
            return the adapter to standard / real-time operation.
            </para>
            <para>
            The <paramref name="startTime"/> and <paramref name="stopTime"/> parameters can be specified in one of the
            following formats:
            <list type="table">
                <listheader>
                    <term>Time Format</term>
                    <description>Format Description</description>
                </listheader>
                <item>
                    <term>12-30-2000 23:59:59.033</term>
                    <description>Absolute date and time.</description>
                </item>
                <item>
                    <term>*</term>
                    <description>Evaluates to <see cref="P:System.DateTime.UtcNow"/>.</description>
                </item>
                <item>
                    <term>*-20s</term>
                    <description>Evaluates to 20 seconds before <see cref="P:System.DateTime.UtcNow"/>.</description>
                </item>
                <item>
                    <term>*-10m</term>
                    <description>Evaluates to 10 minutes before <see cref="P:System.DateTime.UtcNow"/>.</description>
                </item>
                <item>
                    <term>*-1h</term>
                    <description>Evaluates to 1 hour before <see cref="P:System.DateTime.UtcNow"/>.</description>
                </item>
                <item>
                    <term>*-1d</term>
                    <description>Evaluates to 1 day before <see cref="P:System.DateTime.UtcNow"/>.</description>
                </item>
            </list>
            </para>
            </remarks>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.OnProcessException(System.Exception)">
            <summary>
            Raises <see cref="E:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.ProcessException"/> event.
            </summary>
            <param name="ex">Processing <see cref="T:System.Exception"/>.</param>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.OnStatusMessage(System.String)">
            <summary>
            Raises the <see cref="E:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.StatusMessage"/> event.
            </summary>
            <param name="status">New status message.</param>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.OnStatusMessage(System.String,System.Object[])">
            <summary>
            Raises the <see cref="E:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.StatusMessage"/> event with a formatted status message.
            </summary>
            <param name="formattedStatus">Formatted status message.</param>
            <param name="args">Arguments for <paramref name="formattedStatus"/>.</param>
            <remarks>
            This overload combines string.Format and SendStatusMessage for convienence.
            </remarks>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.OnInputMeasurementKeysUpdated">
            <summary>
            Raises <see cref="E:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.InputMeasurementKeysUpdated"/> event.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.OnOutputMeasurementsUpdated">
            <summary>
            Raises <see cref="E:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.OutputMeasurementsUpdated"/> event.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.ClearItems">
            <summary>
            Removes all elements from the <see cref="T:System.Collections.ObjectModel.Collection`1"/>.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.InsertItem(System.Int32,`0)">
            <summary>
            Inserts an element into the <see cref="T:System.Collections.ObjectModel.Collection`1"/> the specified index.
            </summary>
            <param name="index">The zero-based index at which item should be inserted.</param>
            <param name="item">The <see cref="T:TimeSeriesFramework.Adapters.IAdapter"/> implementation to insert.</param>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.SetItem(System.Int32,`0)">
            <summary>
            Assigns a new element to the <see cref="T:System.Collections.ObjectModel.Collection`1"/> at the specified index.
            </summary>
            <param name="index">The zero-based index for which item should be assigned.</param>
            <param name="item">The <see cref="T:TimeSeriesFramework.Adapters.IAdapter"/> implementation to assign.</param>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.RemoveItem(System.Int32)">
            <summary>
            Removes the element at the specified index of the <see cref="T:System.Collections.ObjectModel.Collection`1"/>.
            </summary>
            <param name="index">The zero-based index of the element to remove.</param>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.InitializeItem(`0)">
            <summary>
            Wires events and initializes new <see cref="T:TimeSeriesFramework.Adapters.IAdapter"/> implementation.
            </summary>
            <param name="item">New <see cref="T:TimeSeriesFramework.Adapters.IAdapter"/> implementation.</param>
            <remarks>
            Derived classes should override if more events are defined.
            </remarks>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.DisposeItem(`0)">
            <summary>
            Unwires events and disposes of <see cref="T:TimeSeriesFramework.Adapters.IAdapter"/> implementation.
            </summary>
            <param name="item"><see cref="T:TimeSeriesFramework.Adapters.IAdapter"/> to dispose.</param>
            <remarks>
            Derived classes should override if more events are defined.
            </remarks>
        </member>
        <member name="E:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.StatusMessage">
            <summary>
            Provides status messages to consumer.
            </summary>
            <remarks>
            <see cref="F:TVA.EventArgs`1.Argument"/> is new status message.
            </remarks>
        </member>
        <member name="E:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.ProcessException">
            <summary>
            Event is raised when there is an exception encountered while processing.
            </summary>
            <remarks>
            <see cref="F:TVA.EventArgs`1.Argument"/> is the exception that was thrown.
            </remarks>
        </member>
        <member name="E:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.InputMeasurementKeysUpdated">
            <summary>
            Event is raised when <see cref="P:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.InputMeasurementKeys"/> are updated.
            </summary>
        </member>
        <member name="E:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.OutputMeasurementsUpdated">
            <summary>
            Event is raised when <see cref="P:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.OutputMeasurements"/> are updated.
            </summary>
        </member>
        <member name="E:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.Disposed">
            <summary>
            Event is raised when this <see cref="T:TimeSeriesFramework.Adapters.AdapterCollectionBase`1"/> is disposed or an <see cref="T:TimeSeriesFramework.Adapters.IAdapter"/> in the collection is disposed.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.Name">
            <summary>
            Gets or sets the name of this <see cref="T:TimeSeriesFramework.Adapters.AdapterCollectionBase`1"/>.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.ID">
            <summary>
            Gets or sets numeric ID associated with this <see cref="T:TimeSeriesFramework.Adapters.AdapterCollectionBase`1"/>.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.Initialized">
            <summary>
            Gets or sets flag indicating if the adapter collection has been initialized successfully.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.ConnectionString">
            <summary>
            Gets or sets key/value pair connection information specific to this <see cref="T:TimeSeriesFramework.Adapters.AdapterCollectionBase`1"/>.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.Parent">
            <summary>
            Gets a read-only reference to the collection that contains this <see cref="T:TimeSeriesFramework.Adapters.AdapterCollectionBase`1"/>, if any.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.DataSource">
            <summary>
            Gets or sets <see cref="T:System.Data.DataSet"/> based data source used to load each <see cref="T:TimeSeriesFramework.Adapters.IAdapter"/>.
            Updates to this property will cascade to all items in this <see cref="T:TimeSeriesFramework.Adapters.AdapterCollectionBase`1"/>.
            </summary>
            <remarks>
            Table name specified in <see cref="P:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.DataMember"/> from <see cref="P:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.DataSource"/> is expected
            to have the following table column names:<br/>
            ID, AdapterName, AssemblyName, TypeName, ConnectionString<br/>
            ID column type should be integer based, all other column types are expected to be string based.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.DataMember">
            <summary>
            Gets or sets specific data member (e.g., table name) in <see cref="P:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.DataSource"/> used to <see cref="M:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.Initialize"/> this <see cref="T:TimeSeriesFramework.Adapters.AdapterCollectionBase`1"/>.
            </summary>
            <remarks>
            Table name specified in <see cref="P:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.DataMember"/> from <see cref="P:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.DataSource"/> is expected
            to have the following table column names:<br/>
            ID, AdapterName, AssemblyName, TypeName, ConnectionString<br/>
            ID column type should be integer based, all other column types are expected to be string based.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.InitializationTimeout">
            <summary>
            Gets or sets the default adapter time that represents the maximum time system will wait during <see cref="M:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.Start"/> for initialization.
            </summary>
            <remarks>
            Set to <see cref="F:System.Threading.Timeout.Infinite"/> to wait indefinitely.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.AutoStart">
            <summary>
            Gets or sets flag indicating if adapter collection should automatically start items when <see cref="P:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.AutoInitialize"/> is <c>false</c>.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.ProcessMeasurementFilter">
            <summary>
            Gets or sets flag that determines if measurements being queued for processing should be tested to see if they are in the <see cref="P:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.InputMeasurementKeys"/>.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.InputMeasurementKeys">
            <summary>
            Gets or sets primary keys of input measurements the <see cref="T:TimeSeriesFramework.Adapters.AdapterCollectionBase`1"/> expects, if any.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.OutputMeasurements">
            <summary>
            Gets or sets output measurements that the <see cref="T:TimeSeriesFramework.Adapters.AdapterCollectionBase`1"/> will produce, if any.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.InputSourceIDs">
            <summary>
            Gets or sets <see cref="P:TimeSeriesFramework.MeasurementKey.Source"/> values used to filter input measurement keys.
            </summary>
            <remarks>
            The collection classes simply track this value if assigned, no automatic action is taken.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.OutputSourceIDs">
            <summary>
            Gets or sets <see cref="P:TimeSeriesFramework.MeasurementKey.Source"/> values used to filter output measurements.
            </summary>
            <remarks>
            The collection classes simply track this value if assigned, no automatic action is taken.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.RequestedInputMeasurementKeys">
            <summary>
            Gets or sets input measurement keys that are requested by other adapters based on what adapter says it can provide.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.RequestedOutputMeasurementKeys">
            <summary>
            Gets or sets output measurement keys that are requested by other adapters based on what adapter says it can provide.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.SupportsTemporalProcessing">
            <summary>
            Gets the flag indicating if this adapter collection supports temporal processing.
            </summary>
            <remarks>
            For collections this defaults to <c>false</c>.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.StartTimeConstraint">
            <summary>
            Gets the start time temporal procesing constraint defined by call to <see cref="M:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.SetTemporalConstraint(System.String,System.String,System.String)"/>.
            </summary>
            <remarks>
            This value will be <see cref="F:System.DateTime.MinValue"/> when start time constraint is not set - meaning the adapter
            is processing data in real-time.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.StopTimeConstraint">
            <summary>
            Gets the stop time temporal processing constraint defined by call to <see cref="M:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.SetTemporalConstraint(System.String,System.String,System.String)"/>.
            </summary>
            <remarks>
            This value will be <see cref="F:System.DateTime.MaxValue"/> when stop time constraint is not set - meaning the adapter
            is processing data in real-time.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.ProcessingInterval">
            <summary>
            Gets or sets the desired processing interval, in milliseconds, for the adapter collection and applies this interval to each adapter.
            </summary>
            <remarks>
            With the exception of the values of -1 and 0, this value specifies the desired processing interval for data, i.e.,
            basically a delay, or timer interval, overwhich to process data. A value of -1 means to use the default processing
            interval while a value of 0 means to process data as fast as possible.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.ProcessedMeasurements">
            <summary>
            Gets the total number of measurements processed thus far by each <see cref="T:TimeSeriesFramework.Adapters.IAdapter"/> implementation
            in the <see cref="T:TimeSeriesFramework.Adapters.AdapterCollectionBase`1"/>.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.Enabled">
            <summary>
            Gets or sets enabled state of this <see cref="T:TimeSeriesFramework.Adapters.AdapterCollectionBase`1"/>.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.IsReadOnly">
            <summary>
            Gets a value indicating whether the <see cref="T:TimeSeriesFramework.Adapters.AdapterCollectionBase`1"/> is read-only.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.MonitorTimerEnabled">
            <summary>
            Gets or sets flag that determines if monitor timer should be used for monitoring processed measurement statistics for the <see cref="T:TimeSeriesFramework.Adapters.AdapterCollectionBase`1"/>.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.AutoInitialize">
            <summary>
            Gets flag that detemines if <see cref="T:TimeSeriesFramework.Adapters.IAdapter"/> implementations are automatically initialized
            when they are added to the collection.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.Settings">
            <summary>
            Gets settings <see cref="T:System.Collections.Generic.Dictionary`2"/> parsed when <see cref="P:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.ConnectionString"/> was assigned.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.AdapterCollectionBase`1.Status">
            <summary>
            Gets the descriptive status of this <see cref="T:TimeSeriesFramework.Adapters.AdapterCollectionBase`1"/>.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.ActionAdapterCollection.#ctor">
            <summary>
            Creates a new <see cref="T:TimeSeriesFramework.Adapters.ActionAdapterCollection"/>.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.ActionAdapterCollection.#ctor(System.Collections.Concurrent.ConcurrentDictionary{System.String,System.Threading.AutoResetEvent})">
            <summary>
            Constructs a new instance of the <see cref="T:TimeSeriesFramework.Adapters.ActionAdapterCollection"/>.
            </summary>
            <param name="waitHandles">Wait handle dictionary.</param>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.ActionAdapterCollection.Initialize">
            <summary>
            Initializes the <see cref="T:TimeSeriesFramework.Adapters.ActionAdapterCollection"/>.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.ActionAdapterCollection.QueueMeasurementsForProcessing(System.Collections.Generic.IEnumerable{TimeSeriesFramework.IMeasurement})">
            <summary>
            Queues a collection of measurements for processing to each <see cref="T:TimeSeriesFramework.Adapters.IActionAdapter"/> implementation in
            this <see cref="T:TimeSeriesFramework.Adapters.ActionAdapterCollection"/>.
            </summary>
            <param name="measurements">Measurements to queue for processing.</param>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.ActionAdapterCollection.OnNewMeasurements(System.Collections.Generic.ICollection{TimeSeriesFramework.IMeasurement})">
            <summary>
            Raises the <see cref="E:TimeSeriesFramework.Adapters.ActionAdapterCollection.NewMeasurements"/> event.
            </summary>
            <param name="measurements">New measurements.</param>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.ActionAdapterCollection.OnUnpublishedSamples(System.Int32)">
            <summary>
            Raises the <see cref="E:TimeSeriesFramework.Adapters.ActionAdapterCollection.UnpublishedSamples"/> event.
            </summary>
            <param name="unpublishedSamples">Total number of unpublished seconds of data in the queue.</param>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.ActionAdapterCollection.OnDiscardingMeasurements(System.Collections.Generic.IEnumerable{TimeSeriesFramework.IMeasurement})">
            <summary>
            Raises the <see cref="E:TimeSeriesFramework.Adapters.ActionAdapterCollection.DiscardingMeasurements"/> event.
            </summary>
            <param name="measurements">Enumeration of <see cref="T:TimeSeriesFramework.IMeasurement"/> values being discarded.</param>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.ActionAdapterCollection.InitializeItem(TimeSeriesFramework.Adapters.IActionAdapter)">
            <summary>
            Wires events and initializes new <see cref="T:TimeSeriesFramework.Adapters.IActionAdapter"/> implementation.
            </summary>
            <param name="item">New <see cref="T:TimeSeriesFramework.Adapters.IActionAdapter"/> implementation.</param>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.ActionAdapterCollection.DisposeItem(TimeSeriesFramework.Adapters.IActionAdapter)">
            <summary>
            Unwires events and disposes of <see cref="T:TimeSeriesFramework.Adapters.IActionAdapter"/> implementation.
            </summary>
            <param name="item"><see cref="T:TimeSeriesFramework.Adapters.IActionAdapter"/> to dispose.</param>
        </member>
        <member name="E:TimeSeriesFramework.Adapters.ActionAdapterCollection.NewMeasurements">
            <summary>
            This event will be raised when there are new measurements available from the action adapter.
            </summary>
            <remarks>
            <see cref="F:TVA.EventArgs`1.Argument"/> is collection of new measurements for host to process.
            </remarks>
        </member>
        <member name="E:TimeSeriesFramework.Adapters.ActionAdapterCollection.UnpublishedSamples">
            <summary>
            This event is raised every five seconds allowing consumer to track current number of unpublished seconds of data in the queue.
            </summary>
            <remarks>
            <see cref="F:TVA.EventArgs`1.Argument"/> is the total number of unpublished seconds of data.
            </remarks>
        </member>
        <member name="E:TimeSeriesFramework.Adapters.ActionAdapterCollection.DiscardingMeasurements">
            <summary>
            This event is raised if there are any measurements being discarded during the sorting process.
            </summary>
            <remarks>
            <see cref="F:TVA.EventArgs`1.Argument"/> is the enumeration of <see cref="T:TimeSeriesFramework.IMeasurement"/> values that are being discarded during the sorting process.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.ActionAdapterCollection.RespectInputDemands">
            <summary>
            Gets or sets flag indicating if action adapter should respect auto-start requests based on input demands.
            </summary>
            <remarks>
            Action adapters are in the curious position of being able to both consume and produce points, as such the user needs to be able to control how their
            adapter will behave concerning routing demands when the adapter is setup to connect on demand. In the case of respecting auto-start input demands,
            as an example, this would be <c>false</c> for an action adapter that calculated measurement, but <c>true</c> for an action adapter used to archive inputs.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.ActionAdapterCollection.RespectOutputDemands">
            <summary>
            Gets or sets flag indicating if action adapter should respect auto-start requests based on output demands.
            </summary>
            <remarks>
            Action adapters are in the curious position of being able to both consume and produce points, as such the user needs to be able to control how their
            adapter will behave concerning routing demands when the adapter is setup to connect on demand. In the case of respecting auto-start output demands,
            as an example, this would be <c>true</c> for an action adapter that calculated measurement, but <c>false</c> for an action adapter used to archive inputs.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.ActionAdapterCollection.Status">
            <summary>
            Gets the descriptive status of this <see cref="T:TimeSeriesFramework.Adapters.ActionAdapterCollection"/>.
            </summary>
        </member>
        <member name="T:TimeSeriesFramework.Adapters.AdapterBase">
            <summary>
            Represents the base class for any adapter.
            </summary>
        </member>
        <member name="F:TimeSeriesFramework.Adapters.AdapterBase.DefaultInitializationTimeout">
            <summary>
            Default initialization timeout.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.AdapterBase.#ctor">
            <summary>
            Constructs a new instance of the <see cref="T:TimeSeriesFramework.Adapters.AdapterBase"/>.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.AdapterBase.Finalize">
            <summary>
            Releases the unmanaged resources before the <see cref="T:TimeSeriesFramework.Adapters.AdapterBase"/> object is reclaimed by <see cref="T:System.GC"/>.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.AdapterBase.Dispose">
            <summary>
            Releases all the resources used by the <see cref="T:TimeSeriesFramework.Adapters.AdapterBase"/> object.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.AdapterBase.Dispose(System.Boolean)">
            <summary>
            Releases the unmanaged resources used by the <see cref="T:TimeSeriesFramework.Adapters.AdapterBase"/> object and optionally releases the managed resources.
            </summary>
            <param name="disposing">true to release both managed and unmanaged resources; false to release only unmanaged resources.</param>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.AdapterBase.Initialize">
            <summary>
            Intializes <see cref="T:TimeSeriesFramework.Adapters.AdapterBase"/>.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.AdapterBase.Start">
            <summary>
            Starts the <see cref="T:TimeSeriesFramework.Adapters.AdapterBase"/> or restarts it if it is already running.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.AdapterBase.Stop">
            <summary>
            Stops the <see cref="T:TimeSeriesFramework.Adapters.AdapterBase"/>.
            </summary>		
        </member>
        <member name="M:TimeSeriesFramework.Adapters.AdapterBase.AssignParentCollection(TimeSeriesFramework.Adapters.IAdapterCollection)">
            <summary>
            Assigns the reference to the parent <see cref="T:TimeSeriesFramework.Adapters.IAdapterCollection"/> that will contain this <see cref="T:TimeSeriesFramework.Adapters.AdapterBase"/>.
            </summary>
            <param name="parent">Parent adapter collection.</param>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.AdapterBase.GetExternalEventHandle(System.String)">
            <summary>
            Gets a common wait handle for inter-adapter synchronization.
            </summary>
            <param name="name">Case-insensitive wait handle name.</param>
            <returns>A <see cref="T:System.Threading.AutoResetEvent"/> based wait handle associated with the given <paramref name="name"/>.</returns>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.AdapterBase.WaitForExternalEvents(System.Int32)">
            <summary>
            Waits for all external events to fire; no wait will happen if no external events are defined.
            </summary>
            <param name="timeout">Maximum to time to wait, in milliseconds, for external events before proceeding - value defaults to <see cref="P:TimeSeriesFramework.Adapters.AdapterBase.ExternalEventTimeout"/>.</param>
            <returns><c>true</c> when every all <see cref="P:TimeSeriesFramework.Adapters.AdapterBase.ExternalEventHandles"/> have received a signal or there are no external events defined; otherwise, <c>false</c>.</returns>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.AdapterBase.SetInitializedState(System.Boolean)">
            <summary>
            Manually sets the intialized state of the <see cref="T:TimeSeriesFramework.Adapters.AdapterBase"/>.
            </summary>
            <param name="initialized">Desired initialized state.</param>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.AdapterBase.GetShortStatus(System.Int32)">
            <summary>
            Gets a short one-line status of this <see cref="T:TimeSeriesFramework.Adapters.AdapterBase"/>.
            </summary>
            <param name="maxLength">Maximum number of available characters for display.</param>
            <returns>A short one-line summary of the current status of this <see cref="T:TimeSeriesFramework.Adapters.AdapterBase"/>.</returns>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.AdapterBase.IsInputMeasurement(TimeSeriesFramework.MeasurementKey)">
            <summary>
            Determines if specified measurement key is defined in <see cref="P:TimeSeriesFramework.Adapters.AdapterBase.InputMeasurementKeys"/>.
            </summary>
            <param name="item">Primary key of measurement to find.</param>
            <returns>true if specified measurement key is defined in <see cref="P:TimeSeriesFramework.Adapters.AdapterBase.InputMeasurementKeys"/>.</returns>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.AdapterBase.WaitForInitialize(System.Int32)">
            <summary>
            Blocks the <see cref="P:System.Threading.Thread.CurrentThread"/> until the adapter is <see cref="P:TimeSeriesFramework.Adapters.AdapterBase.Initialized"/>.
            </summary>
            <param name="timeout">The number of milliseconds to wait.</param>
            <returns><c>true</c> if the initialization succeeds; otherwise, <c>false</c>.</returns>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.AdapterBase.SetTemporalConstraint(System.String,System.String,System.String)">
            <summary>
            Defines a temporal processing constraint for the adapter.
            </summary>
            <param name="startTime">Defines a relative or exact start time for the temporal constraint.</param>
            <param name="stopTime">Defines a relative or exact stop time for the temporal constraint.</param>
            <param name="constraintParameters">Defines any temporal parameters related to the constraint.</param>
            <remarks>
            <para>
            This method defines a temporal processing contraint for an adapter, i.e., the start and stop time over which an
            adapter will process data. Actual implementation of the constraint will be adapter specific. Implementations
            should be able to dynamically handle multitple calls to this function with new constraints. Passing in <c>null</c>
            for the <paramref name="startTime"/> and <paramref name="stopTime"/> should cancel the temporal constraint and
            return the adapter to standard / real-time operation.
            </para>
            <para>
            The <paramref name="startTime"/> and <paramref name="stopTime"/> parameters can be specified in one of the
            following formats:
            <list type="table">
                <listheader>
                    <term>Time Format</term>
                    <description>Format Description</description>
                </listheader>
                <item>
                    <term>12-30-2000 23:59:59.033</term>
                    <description>Absolute date and time.</description>
                </item>
                <item>
                    <term>*</term>
                    <description>Evaluates to <see cref="P:System.DateTime.UtcNow"/>.</description>
                </item>
                <item>
                    <term>*-20s</term>
                    <description>Evaluates to 20 seconds before <see cref="P:System.DateTime.UtcNow"/>.</description>
                </item>
                <item>
                    <term>*-10m</term>
                    <description>Evaluates to 10 minutes before <see cref="P:System.DateTime.UtcNow"/>.</description>
                </item>
                <item>
                    <term>*-1h</term>
                    <description>Evaluates to 1 hour before <see cref="P:System.DateTime.UtcNow"/>.</description>
                </item>
                <item>
                    <term>*-1d</term>
                    <description>Evaluates to 1 day before <see cref="P:System.DateTime.UtcNow"/>.</description>
                </item>
            </list>
            </para>
            </remarks>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.AdapterBase.GetHashCode">
            <summary>
            Serves as a hash function for the current <see cref="T:TimeSeriesFramework.Adapters.AdapterBase"/>.
            </summary>
            <returns>A hash code for the current <see cref="T:TimeSeriesFramework.Adapters.AdapterBase"/>.</returns>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.AdapterBase.OnStatusMessage(System.String)">
            <summary>
            Raises the <see cref="E:TimeSeriesFramework.Adapters.AdapterBase.StatusMessage"/> event.
            </summary>
            <param name="status">New status message.</param>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.AdapterBase.OnStatusMessage(System.String,System.Object[])">
            <summary>
            Raises the <see cref="E:TimeSeriesFramework.Adapters.AdapterBase.StatusMessage"/> event with a formatted status message.
            </summary>
            <param name="formattedStatus">Formatted status message.</param>
            <param name="args">Arguments for <paramref name="formattedStatus"/>.</param>
            <remarks>
            This overload combines string.Format and SendStatusMessage for convienence.
            </remarks>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.AdapterBase.OnProcessException(System.Exception)">
            <summary>
            Raises <see cref="E:TimeSeriesFramework.Adapters.AdapterBase.ProcessException"/> event.
            </summary>
            <param name="ex">Processing <see cref="T:System.Exception"/>.</param>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.AdapterBase.OnInputMeasurementKeysUpdated">
            <summary>
            Raises <see cref="E:TimeSeriesFramework.Adapters.AdapterBase.InputMeasurementKeysUpdated"/> event.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.AdapterBase.OnOutputMeasurementsUpdated">
            <summary>
            Raises <see cref="E:TimeSeriesFramework.Adapters.AdapterBase.OutputMeasurementsUpdated"/> event.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.AdapterBase.IncrementProcessedMeasurements(System.Int64)">
            <summary>
            Safely increments the total processed measurements.
            </summary>
            <param name="totalAdded"></param>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.AdapterBase.ParseTimeTag(System.String)">
            <summary>
            Parses a string formatted as an absolute or relative time tag.
            </summary>
            <param name="timetag">String formatted as an absolute or relative time tag.</param>
            <returns>
            <see cref="T:System.DateTime"/> representing the parsed <paramref name="timetag"/> string formatted as an absolute or relative time tag.
            </returns>
            <remarks>
            <para>
            Relative times are parsed based on an offset to current time (UTC) specified by "*".
            </para>
            <para>
            The <paramref name="timetag"/> parameter can be specified in one of the following formats:
            <list type="table">
                <listheader>
                    <term>Time Format</term>
                    <description>Format Description</description>
                </listheader>
                <item>
                    <term>12-30-2000 23:59:59.033</term>
                    <description>Absolute date and time.</description>
                </item>
                <item>
                    <term>*</term>
                    <description>Evaluates to <see cref="P:System.DateTime.UtcNow"/>.</description>
                </item>
                <item>
                    <term>*-20s</term>
                    <description>Evaluates to 20 seconds before <see cref="P:System.DateTime.UtcNow"/>.</description>
                </item>
                <item>
                    <term>*-10m</term>
                    <description>Evaluates to 10 minutes before <see cref="P:System.DateTime.UtcNow"/>.</description>
                </item>
                <item>
                    <term>*-1h</term>
                    <description>Evaluates to 1 hour before <see cref="P:System.DateTime.UtcNow"/>.</description>
                </item>
                <item>
                    <term>*-1d</term>
                    <description>Evaluates to 1 day before <see cref="P:System.DateTime.UtcNow"/>.</description>
                </item>
            </list>
            </para>
            </remarks>
            <exception cref="T:System.ArgumentNullException"><paramref name="timetag"/> parameter cannot be null or empty.</exception>
            <exception cref="T:System.FormatException"><paramref name="timetag"/> does not contain a valid string representation of a date and time.</exception>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.AdapterBase.LoadInputSourceIDs(TimeSeriesFramework.Adapters.IAdapter,System.String)">
            <summary>
            Loads an <see cref="T:TimeSeriesFramework.Adapters.IOutputAdapter"/> or <see cref="T:TimeSeriesFramework.Adapters.IActionAdapter"/> instance's input measurement keys from a specific set of source ID's.
            </summary>
            <param name="adapter"><see cref="T:TimeSeriesFramework.Adapters.IAdapter"/> to load input measurement keys for.</param>
            <param name="measurementTable">Measurement table name used to load input source ID's.</param>
            <remarks>
            Any existing input measurement keys will be distinctly merged with those associated with specified source ID's.
            </remarks>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.AdapterBase.LoadOutputSourceIDs(TimeSeriesFramework.Adapters.IAdapter,System.String)">
            <summary>
            Loads an <see cref="T:TimeSeriesFramework.Adapters.IInputAdapter"/> or <see cref="T:TimeSeriesFramework.Adapters.IActionAdapter"/> instance's output measurements from a specific set of source ID's.
            </summary>
            <param name="adapter"><see cref="T:TimeSeriesFramework.Adapters.IAdapter"/> to load output measurements for.</param>
            <param name="measurementTable">Measurement table name used to load output source ID's.</param>
            <remarks>
            Any existing output measurements will be distinctly merged with those associated with specified source ID's.
            </remarks>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.AdapterBase.ParseInputMeasurementKeys(System.Data.DataSet,System.String,System.String)">
            <summary>
            Parses input measurement keys from connection string setting.
            </summary>
            <param name="dataSource">The <see cref="T:System.Data.DataSet"/> used to define input measurement keys.</param>
            <param name="value">Value of setting used to define input measurement keys, typically "inputMeasurementKeys".</param>
            <param name="measurementTable">Measurement table name used to load additional meta-data; this is not used when specifying a FILTER expression.</param>
            <returns>User selected input measurement keys.</returns>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.AdapterBase.ParseOutputMeasurementKeys(System.Data.DataSet,System.String,System.String)">
            <summary>
            Parses output measurement keys from connection string setting.
            </summary>
            <param name="dataSource">The <see cref="T:System.Data.DataSet"/> used to define output measurements.</param>
            <param name="value">Value of setting used to define output measurements, typically "outputMeasurements".</param>
            <param name="measurementTable">Measurement table name used to load additional meta-data; this is not used when specifying a FILTER expression.</param>
            <returns>User selected output measurements.</returns>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.AdapterBase.ParseOutputMeasurements(System.Data.DataSet,System.String,System.String)">
            <summary>
            Parses output measurements from connection string setting.
            </summary>
            <param name="dataSource">The <see cref="T:System.Data.DataSet"/> used to define output measurements.</param>
            <param name="value">Value of setting used to define output measurements, typically "outputMeasurements".</param>
            <param name="measurementTable">Measurement table name used to load additional meta-data; this is not used when specifying a FILTER expression.</param>
            <returns>User selected output measurements.</returns>
        </member>
        <member name="E:TimeSeriesFramework.Adapters.AdapterBase.StatusMessage">
            <summary>
            Provides status messages to consumer.
            </summary>
            <remarks>
            <see cref="F:TVA.EventArgs`1.Argument"/> is new status message.
            </remarks>
        </member>
        <member name="E:TimeSeriesFramework.Adapters.AdapterBase.ProcessException">
            <summary>
            Event is raised when there is an exception encountered while processing.
            </summary>
            <remarks>
            <see cref="F:TVA.EventArgs`1.Argument"/> is the exception that was thrown.
            </remarks>
        </member>
        <member name="E:TimeSeriesFramework.Adapters.AdapterBase.InputMeasurementKeysUpdated">
            <summary>
            Event is raised when <see cref="P:TimeSeriesFramework.Adapters.AdapterBase.InputMeasurementKeys"/> are updated.
            </summary>
        </member>
        <member name="E:TimeSeriesFramework.Adapters.AdapterBase.OutputMeasurementsUpdated">
            <summary>
            Event is raised when <see cref="P:TimeSeriesFramework.Adapters.AdapterBase.OutputMeasurements"/> are updated.
            </summary>
        </member>
        <member name="E:TimeSeriesFramework.Adapters.AdapterBase.Disposed">
            <summary>
            Event is raised when <see cref="T:TimeSeriesFramework.Adapters.AdapterBase"/> is disposed.
            </summary>
            <remarks>
            If an adapter references another adapter by enumerating the <see cref="P:TimeSeriesFramework.Adapters.AdapterBase.Parent"/> collection, this
            event should be monitored to release the reference.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.AdapterBase.Name">
            <summary>
            Gets or sets the name of this <see cref="T:TimeSeriesFramework.Adapters.AdapterBase"/>.
            </summary>
            <remarks>
            Derived classes should provide a name for the adapter.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.AdapterBase.ID">
            <summary>
            Gets or sets numeric ID associated with this <see cref="T:TimeSeriesFramework.Adapters.AdapterBase"/>.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.AdapterBase.ConnectionString">
            <summary>
            Gets or sets key/value pair connection information specific to this <see cref="T:TimeSeriesFramework.Adapters.AdapterBase"/>.
            </summary>
            <remarks>
            <para>
            Example connection string using manually defined measurements:<br/>
            <c>inputMeasurementKeys={P1:1245;P1:1247;P2:1335};</c><br/>
            <c>outputMeasurements={P3:1345,60.0,1.0;P3:1346;P3:1347}</c><br/>
            When defined manually, elements in key:<br/>
            * inputMeasurementKeys are defined as "ArchiveSource:PointID"<br/>
            * outputMeasurements are defined as "ArchiveSource:PointID,Adder,Multiplier", the adder and multiplier are optional
            defaulting to 0.0 and 1.0 respectively.
            <br/>
            </para>
            <para>
            Example connection string using measurements defined in a <see cref="P:TimeSeriesFramework.Adapters.AdapterBase.DataSource"/> table:<br/>
            <c>inputMeasurementKeys={FILTER ActiveMeasurements WHERE Company='TVA' AND SignalType='FREQ' ORDER BY ID};</c><br/>
            <c>outputMeasurements={FILTER ActiveMeasurements WHERE SignalType IN ('IPHA','VPHA') AND Phase='+'}</c><br/>
            <br/>
            Basic filtering syntax is as follows:<br/>
            <br/>
                {FILTER &lt;TableName&gt; WHERE &lt;Expression&gt; [ORDER BY &lt;SortField&gt;]}<br/>
            <br/>
            Source tables are expected to have at least the following fields:<br/>
            <list type="table">
                <listheader>
                    <term>Name</term>
                    <term>Type</term>
                    <description>Description.</description>
                </listheader>
                <item>
                    <term>ID</term>
                    <term>NVARCHAR</term>
                    <description>Measurement key formatted as: ArchiveSource:PointID.</description>
                </item>
                <item>
                    <term>PointTag</term>
                    <term>NVARCHAR</term>
                    <description>Point tag of measurement.</description>
                </item>
                <item>
                    <term>Adder</term>
                    <term>FLOAT</term>
                    <description>Adder to apply to value, if any (default to 0.0).</description>
                </item>
                <item>
                    <term>Multiplier</term>
                    <term>FLOAT</term>
                    <description>Multipler to apply to value, if any (default to 1.0).</description>
                </item>
            </list>
            </para>
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.AdapterBase.Parent">
            <summary>
            Gets a read-only reference to the collection that contains this <see cref="T:TimeSeriesFramework.Adapters.AdapterBase"/>.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.AdapterBase.DataSource">
            <summary>
            Gets or sets <see cref="T:System.Data.DataSet"/> based data source available to this <see cref="T:TimeSeriesFramework.Adapters.AdapterBase"/>.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.AdapterBase.InitializationTimeout">
            <summary>
            Gets or sets maximum time system will wait during <see cref="M:TimeSeriesFramework.Adapters.AdapterBase.Start"/> for initialization.
            </summary>
            <remarks>
            Set to <see cref="F:System.Threading.Timeout.Infinite"/> to wait indefinitely.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.AdapterBase.AutoStart">
            <summary>
            Gets or sets flag indicating if adapter should automatically start or otherwise connect on demand.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.AdapterBase.ProcessMeasurementFilter">
            <summary>
            Gets or sets flag that determines if measurements being queued for processing should be tested to see if they are in the <see cref="P:TimeSeriesFramework.Adapters.AdapterBase.InputMeasurementKeys"/>.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.AdapterBase.InputMeasurementKeys">
            <summary>
            Gets or sets primary keys of input measurements the <see cref="T:TimeSeriesFramework.Adapters.AdapterBase"/> expects, if any.
            </summary>
            <remarks>
            If your adapter needs to receive all measurements, you must explicitly set InputMeasurementKeys to null.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.AdapterBase.OutputMeasurements">
            <summary>
            Gets or sets output measurements that the <see cref="T:TimeSeriesFramework.Adapters.AdapterBase"/> will produce, if any.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.AdapterBase.ProcessedMeasurements">
            <summary>
            Gets the total number of measurements handled thus far by the <see cref="T:TimeSeriesFramework.Adapters.AdapterBase"/>.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.AdapterBase.MeasurementReportingInterval">
            <summary>
            Gets or sets the measurement reporting interval.
            </summary>
            <remarks>
            This is used to determined how many measurements should be processed before reporting status.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.AdapterBase.Initialized">
            <summary>
            Gets or sets flag indicating if the adapter has been initialized successfully.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.AdapterBase.Enabled">
            <summary>
            Gets or sets enabled state of this <see cref="T:TimeSeriesFramework.Adapters.AdapterBase"/>.
            </summary>
            <remarks>
            Base class simply starts or stops <see cref="T:TimeSeriesFramework.Adapters.AdapterBase"/> based on flag value. Derived classes should
            extend this if needed to enable or disable operational state of the adapter based on flag value.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.AdapterBase.StartTime">
            <summary>
            Gets the UTC time this <see cref="T:TimeSeriesFramework.Adapters.AdapterBase"/> was started.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.AdapterBase.StopTime">
            <summary>
            Gets the UTC time this <see cref="T:TimeSeriesFramework.Adapters.AdapterBase"/> was stopped.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.AdapterBase.SupportsTemporalProcessing">
            <summary>
            Gets the flag indicating if this adapter supports temporal processing.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.AdapterBase.StartTimeConstraint">
            <summary>
            Gets the start time temporal procesing constraint defined by call to <see cref="M:TimeSeriesFramework.Adapters.AdapterBase.SetTemporalConstraint(System.String,System.String,System.String)"/>.
            </summary>
            <remarks>
            This value will be <see cref="F:System.DateTime.MinValue"/> when start time constraint is not set - meaning the adapter
            is processing data in real-time.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.AdapterBase.StopTimeConstraint">
            <summary>
            Gets the stop time temporal processing constraint defined by call to <see cref="M:TimeSeriesFramework.Adapters.AdapterBase.SetTemporalConstraint(System.String,System.String,System.String)"/>.
            </summary>
            <remarks>
            This value will be <see cref="F:System.DateTime.MaxValue"/> when stop time constraint is not set - meaning the adapter
            is processing data in real-time.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.AdapterBase.ProcessingInterval">
            <summary>
            Gets or sets the desired processing interval, in milliseconds, for the adapter.
            </summary>
            <remarks>
            With the exception of the values of -1 and 0, this value specifies the desired processing interval for data, i.e.,
            basically a delay, or timer interval, overwhich to process data. A value of -1 means to use the default processing
            interval while a value of 0 means to process data as fast as possible.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.AdapterBase.RunTime">
            <summary>
            Gets the total amount of time, in seconds, that the adapter has been active.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.AdapterBase.Settings">
            <summary>
            Gets settings <see cref="T:System.Collections.Generic.Dictionary`2"/> parsed when <see cref="P:TimeSeriesFramework.Adapters.AdapterBase.ConnectionString"/> was assigned.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.AdapterBase.Status">
            <summary>
            Gets the status of this <see cref="T:TimeSeriesFramework.Adapters.AdapterBase"/>.
            </summary>
            <remarks>
            Derived classes should provide current status information about the adapter for display purposes.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.AdapterBase.ExternalEventHandles">
            <summary>
            Gets or sets collection of <see cref="T:System.Threading.AutoResetEvent"/> wait handles used to synchronize activity with external events.
            </summary>
            <remarks>
            Each defined external event in the collection should be acquired via <see cref="M:TimeSeriesFramework.Adapters.AdapterBase.GetExternalEventHandle(System.String)"/>.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.AdapterBase.ExternalEventTimeout">
            <summary>
            Gets or sets maximum to time to wait, in milliseconds, for external events before proceeding.
            </summary>
        </member>
        <member name="T:TimeSeriesFramework.Adapters.AdapterCommandAttribute">
            <summary>
            Represents an attribute that allows a method in an <see cref="T:TimeSeriesFramework.Adapters.IAdapter"/> class to be exposed as
            an invokable command.
            </summary>
            <remarks>
            Only public methods will be exposed as invokable.
            </remarks>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.AdapterCommandAttribute.#ctor(System.String)">
            <summary>
            Creates a new <see cref="T:TimeSeriesFramework.Adapters.AdapterCommandAttribute"/> with the specified <paramref name="description"/> value.
            </summary>
            <param name="description">Assigns the description for this adapter command.</param>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.AdapterCommandAttribute.Description">
            <summary>
            Gets the description of this adapter command.
            </summary>
        </member>
        <member name="T:TimeSeriesFramework.Adapters.AllAdaptersCollection">
            <summary>
            Represents a collection of all <see cref="T:TimeSeriesFramework.Adapters.IAdapterCollection"/> implementations (i.e., a collection of <see cref="T:TimeSeriesFramework.Adapters.IAdapterCollection"/>'s).
            </summary>
            <remarks>
            This collection allows all <see cref="T:TimeSeriesFramework.Adapters.IAdapterCollection"/> implementations to be managed as a group.
            </remarks>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.AllAdaptersCollection.#ctor">
            <summary>
            Creates a new <see cref="T:TimeSeriesFramework.Adapters.AllAdaptersCollection"/>.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.AllAdaptersCollection.#ctor(System.Collections.Concurrent.ConcurrentDictionary{System.String,System.Threading.AutoResetEvent})">
            <summary>
            Constructs a new instance of the <see cref="T:TimeSeriesFramework.Adapters.AllAdaptersCollection"/>.
            </summary>
            <param name="waitHandles">Wait handle dictionary.</param>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.AllAdaptersCollection.Initialize">
            <summary>
            Initializes each <see cref="T:TimeSeriesFramework.Adapters.IAdapterCollection"/> implementation in this <see cref="T:TimeSeriesFramework.Adapters.AllAdaptersCollection"/>.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.AllAdaptersCollection.UpdateCollectionConfigurations">
            <summary>
            Create newly defined adapters and remove adapters that are no longer present in the adapter collection configurations. 
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.AllAdaptersCollection.TryGetAnyAdapterByID(System.UInt32,TimeSeriesFramework.Adapters.IAdapter@,TimeSeriesFramework.Adapters.IAdapterCollection@)">
            <summary>
            Attempts to get any adapter in all collections with the specified <paramref name="id"/>.
            </summary>
            <param name="id">ID of adapter to get.</param>
            <param name="adapter">Adapter reference if found; otherwise null.</param>
            <param name="adapterCollection">Adapter collection reference if <paramref name="adapter"/> is found; otherwise null.</param>
            <returns><c>true</c> if adapter with the specified <paramref name="id"/> was found; otherwise <c>false</c>.</returns>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.AllAdaptersCollection.TryGetAnyAdapterByName(System.String,TimeSeriesFramework.Adapters.IAdapter@,TimeSeriesFramework.Adapters.IAdapterCollection@)">
            <summary>
            Attempts to get any adapter in all collections with the specified <paramref name="name"/>.
            </summary>
            <param name="name">Name of adapter to get.</param>
            <param name="adapter">Adapter reference if found; otherwise null.</param>
            <param name="adapterCollection">Adapter collection reference if <paramref name="adapter"/> is found; otherwise null.</param>
            <returns><c>true</c> if adapter with the specified <paramref name="name"/> was found; otherwise <c>false</c>.</returns>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.AllAdaptersCollection.TryInitializeAdapterByID(System.UInt32)">
            <summary>
            Attempts to initialize (or reinitialize) an individual <see cref="T:TimeSeriesFramework.Adapters.IAdapter"/> based on its ID from any collection.
            </summary>
            <param name="id">The numeric ID associated with the <see cref="T:TimeSeriesFramework.Adapters.IAdapter"/> to be initialized.</param>
            <returns><c>true</c> if item was successfully initialized; otherwise <c>false</c>.</returns>
            <remarks>
            This method traverses all collections looking for an adapter with the specified ID.
            </remarks>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.AllAdaptersCollection.TryCreateAdapter(System.Data.DataRow,TimeSeriesFramework.Adapters.IAdapterCollection@)">
            <summary>
            This method is not implemented in <see cref="T:TimeSeriesFramework.Adapters.AllAdaptersCollection"/>.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.AllAdaptersCollection.TryGetAdapterByID(System.UInt32,TimeSeriesFramework.Adapters.IAdapterCollection@)">
            <summary>
            This method is not implemented in <see cref="T:TimeSeriesFramework.Adapters.AllAdaptersCollection"/>.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.AllAdaptersCollection.AutoInitialize">
            <summary>
            Gets flag that detemines if <see cref="T:TimeSeriesFramework.Adapters.IAdapter"/> implementations are automatically initialized
            when they are added to the collection.
            </summary>
            <remarks>
            We don't auto-initialize collections added to the <see cref="T:TimeSeriesFramework.Adapters.AllAdaptersCollection"/> since no data source
            will be available when the collections are being created.
            </remarks>
        </member>
        <member name="T:TimeSeriesFramework.Adapters.FacileActionAdapterBase">
            <summary>
            Represents the base class for simple, non-time-aligned, action adapters.
            </summary>
            <remarks>
            This base class acts on incoming measurements, in a non-time-aligned fashion, for general processing. If derived
            class needs time-aligned data for processing, the <see cref="T:TimeSeriesFramework.Adapters.ActionAdapterBase"/> class should be used instead.
            Derived classes are expected call <see cref="M:TimeSeriesFramework.Adapters.FacileActionAdapterBase.OnNewMeasurements(System.Collections.Generic.ICollection{TimeSeriesFramework.IMeasurement})"/> for any new measurements that may get created.
            </remarks>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.FacileActionAdapterBase.#ctor">
            <summary>
            Creates a new instance of the <see cref="T:TimeSeriesFramework.Adapters.FacileActionAdapterBase"/> class.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.FacileActionAdapterBase.Initialize">
            <summary>
            Initializes <see cref="T:TimeSeriesFramework.Adapters.FacileActionAdapterBase"/>.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.FacileActionAdapterBase.QueueMeasurementForProcessing(TimeSeriesFramework.IMeasurement)">
            <summary>
            Queues a single measurement for processing.
            </summary>
            <param name="measurement">Measurement to queue for processing.</param>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.FacileActionAdapterBase.QueueMeasurementsForProcessing(System.Collections.Generic.IEnumerable{TimeSeriesFramework.IMeasurement})">
            <summary>
            Queues a collection of measurements for processing.
            </summary>
            <param name="measurements">Measurements to queue for processing.</param>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.FacileActionAdapterBase.OnProcessException(System.Exception)">
            <summary>
            Raises <see cref="E:TimeSeriesFramework.Adapters.AdapterBase.ProcessException"/> event.
            </summary>
            <param name="ex">Processing <see cref="T:System.Exception"/>.</param>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.FacileActionAdapterBase.OnNewMeasurements(System.Collections.Generic.ICollection{TimeSeriesFramework.IMeasurement})">
            <summary>
            Raises the <see cref="E:TimeSeriesFramework.Adapters.FacileActionAdapterBase.NewMeasurements"/> event.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.FacileActionAdapterBase.OnUnpublishedSamples(System.Int32)">
            <summary>
            Raises the <see cref="E:TimeSeriesFramework.Adapters.FacileActionAdapterBase.UnpublishedSamples"/> event.
            </summary>
            <param name="seconds">Total number of unpublished seconds of data.</param>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.FacileActionAdapterBase.OnDiscardingMeasurements(System.Collections.Generic.IEnumerable{TimeSeriesFramework.IMeasurement})">
            <summary>
            Raises the <see cref="E:TimeSeriesFramework.Adapters.FacileActionAdapterBase.DiscardingMeasurements"/> event.
            </summary>
            <param name="measurements">Enumeration of <see cref="T:TimeSeriesFramework.IMeasurement"/> values being discarded.</param>
        </member>
        <member name="E:TimeSeriesFramework.Adapters.FacileActionAdapterBase.NewMeasurements">
            <summary>
            Provides new measurements from action adapter.
            </summary>
            <remarks>
            <see cref="F:TVA.EventArgs`1.Argument"/> is a collection of new measurements for host to process.
            </remarks>
        </member>
        <member name="E:TimeSeriesFramework.Adapters.FacileActionAdapterBase.UnpublishedSamples">
            <summary>
            This event is raised by derived class, if needed, to track current number of unpublished seconds of data in the queue.
            </summary>
            <remarks>
            <see cref="F:TVA.EventArgs`1.Argument"/> is the total number of unpublished seconds of data.
            </remarks>
        </member>
        <member name="E:TimeSeriesFramework.Adapters.FacileActionAdapterBase.DiscardingMeasurements">
            <summary>
            This event is raised if there are any measurements being discarded during the sorting process.
            </summary>
            <remarks>
            <see cref="F:TVA.EventArgs`1.Argument"/> is the enumeration of <see cref="T:TimeSeriesFramework.IMeasurement"/> values that are being discarded during the sorting process.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.FacileActionAdapterBase.InputMeasurementKeys">
            <summary>
            Gets or sets primary keys of input measurements the <see cref="T:TimeSeriesFramework.Adapters.FacileActionAdapterBase"/> expects, if any.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.FacileActionAdapterBase.InputSourceIDs">
            <summary>
            Gets or sets <see cref="P:TimeSeriesFramework.MeasurementKey.Source"/> values used to filter input measurement keys.
            </summary>
            <remarks>
            This allows an adapter to associate itself with entire collections of measurements based on the source of the measurement keys.
            Set to <c>null</c> apply no filter.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.FacileActionAdapterBase.OutputSourceIDs">
            <summary>
            Gets or sets <see cref="P:TimeSeriesFramework.MeasurementKey.Source"/> values used to filter output measurements.
            </summary>
            <remarks>
            This allows an adapter to associate itself with entire collections of measurements based on the source of the measurement keys.
            Set to <c>null</c> apply no filter.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.FacileActionAdapterBase.RequestedInputMeasurementKeys">
            <summary>
            Gets or sets input measurement keys that are requested by other adapters based on what adapter says it can provide.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.FacileActionAdapterBase.RequestedOutputMeasurementKeys">
            <summary>
            Gets or sets output measurement keys that are requested by other adapters based on what adapter says it can provide.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.FacileActionAdapterBase.RespectInputDemands">
            <summary>
            Gets or sets flag indicating if action adapter should respect auto-start requests based on input demands.
            </summary>
            <remarks>
            Action adapters are in the curious position of being able to both consume and produce points, as such the user needs to be able to control how their
            adapter will behave concerning routing demands when the adapter is setup to connect on demand. In the case of respecting auto-start input demands,
            as an example, this would be <c>false</c> for an action adapter that calculated measurement, but <c>true</c> for an action adapter used to archive inputs.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.FacileActionAdapterBase.RespectOutputDemands">
            <summary>
            Gets or sets flag indicating if action adapter should respect auto-start requests based on output demands.
            </summary>
            <remarks>
            Action adapters are in the curious position of being able to both consume and produce points, as such the user needs to be able to control how their
            adapter will behave concerning routing demands when the adapter is setup to connect on demand. In the case of respecting auto-start output demands,
            as an example, this would be <c>true</c> for an action adapter that calculated measurement, but <c>false</c> for an action adapter used to archive inputs.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.FacileActionAdapterBase.FramesPerSecond">
            <summary>
            Gets or sets the frames per second to be used by the <see cref="T:TimeSeriesFramework.Adapters.FacileActionAdapterBase"/>.
            </summary>
            <remarks>
            This value is only tracked in the <see cref="T:TimeSeriesFramework.Adapters.FacileActionAdapterBase"/>, derived class will determine its use.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.FacileActionAdapterBase.LagTime">
            <summary>
            Gets or sets the allowed past time deviation tolerance, in seconds (can be subsecond).
            </summary>
            <remarks>
            <para>Defines the time sensitivity to past measurement timestamps.</para>
            <para>The number of seconds allowed before assuming a measurement timestamp is too old.</para>
            <para>This becomes the amount of delay introduced by the concentrator to allow time for data to flow into the system.</para>
            </remarks>
            <exception cref="T:System.ArgumentOutOfRangeException">LagTime must be greater than zero, but it can be less than one.</exception>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.FacileActionAdapterBase.LeadTime">
            <summary>
            Gets or sets the allowed future time deviation tolerance, in seconds (can be subsecond).
            </summary>
            <remarks>
            <para>Defines the time sensitivity to future measurement timestamps.</para>
            <para>The number of seconds allowed before assuming a measurement timestamp is too advanced.</para>
            <para>This becomes the tolerated +/- accuracy of the local clock to real-time.</para>
            </remarks>
            <exception cref="T:System.ArgumentOutOfRangeException">LeadTime must be greater than zero, but it can be less than one.</exception>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.FacileActionAdapterBase.TrackLatestMeasurements">
            <summary>
            Gets or sets flag to start tracking the absolute latest received measurement values.
            </summary>
            <remarks>
            Lastest received measurement value will be available via the <see cref="P:TimeSeriesFramework.Adapters.FacileActionAdapterBase.LatestMeasurements"/> property.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.FacileActionAdapterBase.LatestMeasurements">
            <summary>
            Gets reference to the collection of absolute latest received measurement values.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.FacileActionAdapterBase.UseLocalClockAsRealTime">
            <summary>
            Gets or sets flag that determines whether or not to use the local clock time as real time.
            </summary>
            <remarks>
            Use your local system clock as real time only if the time is locally GPS-synchronized,
            or if the measurement values being sorted were not measured relative to a GPS-synchronized clock.
            Turn this off if the class is intended to process historical data.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.FacileActionAdapterBase.RealTime">
            <summary>
            Gets the the most accurate time value that is available. If <see cref="P:TimeSeriesFramework.Adapters.FacileActionAdapterBase.UseLocalClockAsRealTime"/> = <c>true</c>, then
            this function will return <see cref="P:System.DateTime.UtcNow"/>. Otherwise, this function will return the timestamp of the
            most recent measurement.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.FacileActionAdapterBase.Status">
            <summary>
            Returns the detailed status of the data input source.
            </summary>
            <remarks>
            Derived classes should extend status with implementation specific information.
            </remarks>
        </member>
        <member name="T:TimeSeriesFramework.Adapters.IAdapterExtensions">
            <summary>
            Defines static extension functions for <see cref="T:TimeSeriesFramework.Adapters.IAdapter"/> implementations.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.IAdapterExtensions.TemporalConstraintIsDefined(TimeSeriesFramework.Adapters.IAdapter)">
            <summary>
            Returns <c>true</c> if <see cref="T:TimeSeriesFramework.Adapters.IAdapter"/> has a temporal constraint defined, i.e., either
            <see cref="P:TimeSeriesFramework.Adapters.IAdapter.StartTimeConstraint"/> or <see cref="P:TimeSeriesFramework.Adapters.IAdapter.StopTimeConstraint"/> is not
            set to its default value.
            </summary>
            <param name="adapter"><see cref="T:TimeSeriesFramework.Adapters.IAdapter"/> instance to test.</param>
            <returns><c>true</c> if <see cref="T:TimeSeriesFramework.Adapters.IAdapter"/> has a temporal constraint defined.</returns>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.IAdapterExtensions.OutputMeasurementKeys(TimeSeriesFramework.Adapters.IAdapter)">
            <summary>
            Returns the <see cref="T:TimeSeriesFramework.MeasurementKey"/> values of the <see cref="T:TimeSeriesFramework.Adapters.IAdapter"/> output measurements.
            </summary>
            <param name="adapter"><see cref="T:TimeSeriesFramework.Adapters.IAdapter"/> instance output measurements to convert.</param>
            <returns><see cref="T:TimeSeriesFramework.MeasurementKey"/> values of the <see cref="T:TimeSeriesFramework.Adapters.IAdapter"/> output measurements.</returns>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.IAdapterExtensions.InputMeasurementKeys``1(System.Collections.Generic.IEnumerable{``0})">
            <summary>
            Gets a distinct list of input measurement keys for all of the provided adapters.
            </summary>
            <typeparam name="T">Type of <see cref="T:TimeSeriesFramework.Adapters.IAdapter"/>.</typeparam>
            <param name="adapters">Source <see cref="T:TimeSeriesFramework.Adapters.IAdapter"/> enumeration.</param>
            <returns>Distinct list of input measurement keys for all of the provided adapters.</returns>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.IAdapterExtensions.OutputMeasurementKeys``1(System.Collections.Generic.IEnumerable{``0})">
            <summary>
            Gets a distinct list of output measurement keys for all of the provided adapters.
            </summary>
            <typeparam name="T">Type of <see cref="T:TimeSeriesFramework.Adapters.IAdapter"/>.</typeparam>
            <param name="adapters">Source <see cref="T:TimeSeriesFramework.Adapters.IAdapter"/> enumeration.</param>
            <returns>Distinct list of output measurement keys for all of the provided adapters.</returns>
        </member>
        <member name="T:TimeSeriesFramework.Adapters.IInputAdapter">
            <summary>
            Represents the abstract interface for any incoming adapter.
            </summary>
        </member>
        <member name="E:TimeSeriesFramework.Adapters.IInputAdapter.NewMeasurements">
            <summary>
            Provides new measurements from input adapter.
            </summary>
            <remarks>
            <see cref="F:TVA.EventArgs`1.Argument"/> is a collection of new measurements for host to process.
            </remarks>
        </member>
        <member name="E:TimeSeriesFramework.Adapters.IInputAdapter.ProcessingComplete">
            <summary>
            Indicates to the host that processing for the input adapter has completed.
            </summary>
            <remarks>
            This event is expected to only be raised when an input adapter has been designed to process
            a finite amount of data, e.g., reading a historical range of data during temporal procesing.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.IInputAdapter.OutputSourceIDs">
            <summary>
            Gets or sets <see cref="P:TimeSeriesFramework.MeasurementKey.Source"/> values used to filter output measurements.
            </summary>
            <remarks>
            This allows an adapter to associate itself with entire collections of measurements based on the source of the measurement keys.
            Set to <c>null</c> apply no filter.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.IInputAdapter.RequestedOutputMeasurementKeys">
            <summary>
            Gets or sets output measurement keys that are requested by other adapters based on what adapter says it can provide.
            </summary>
        </member>
        <member name="T:TimeSeriesFramework.Adapters.InputAdapterBase">
            <summary>
            Represents the base class for any incoming input adapter.
            </summary>
            <remarks>
            Derived classes are expected to call <see cref="M:TimeSeriesFramework.Adapters.InputAdapterBase.OnNewMeasurements(System.Collections.Generic.ICollection{TimeSeriesFramework.IMeasurement})"/> when new measurements are received.
            </remarks>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.InputAdapterBase.#ctor">
            <summary>
            Constructs a new instance of the <see cref="T:TimeSeriesFramework.Adapters.InputAdapterBase"/>.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.InputAdapterBase.Dispose(System.Boolean)">
            <summary>
            Releases the unmanaged resources used by the <see cref="T:TimeSeriesFramework.Adapters.InputAdapterBase"/> object and optionally releases the managed resources.
            </summary>
            <param name="disposing">true to release both managed and unmanaged resources; false to release only unmanaged resources.</param>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.InputAdapterBase.Initialize">
            <summary>
            Initializes <see cref="T:TimeSeriesFramework.Adapters.InputAdapterBase"/>.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.InputAdapterBase.Start">
            <summary>
            Starts this <see cref="T:TimeSeriesFramework.Adapters.InputAdapterBase"/> and initiates connection cycle to data input source.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.InputAdapterBase.AttemptConnection">
            <summary>
            Attempts to connect to data input source.
            </summary>
            <remarks>
            Derived classes should attempt connection to data input source here.  Any exceptions thrown
            by this implementation will result in restart of the connection cycle.
            </remarks>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.InputAdapterBase.OnConnected">
            <summary>
            Called when data input source connection is established.
            </summary>
            <remarks>
            Derived classes should call this method manually if <see cref="P:TimeSeriesFramework.Adapters.InputAdapterBase.UseAsyncConnect"/> is <c>true</c>.
            </remarks>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.InputAdapterBase.Stop">
            <summary>
            Stops this <see cref="T:TimeSeriesFramework.Adapters.InputAdapterBase"/> and disconnects from data input source.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.InputAdapterBase.AttemptDisconnection">
            <summary>
            Attempts to disconnect from data input source.
            </summary>
            <remarks>
            Derived classes should attempt disconnect from data input source here.  Any exceptions thrown
            by this implementation will be reported to host via <see cref="E:TimeSeriesFramework.Adapters.AdapterBase.ProcessException"/> event.
            </remarks>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.InputAdapterBase.OnDisconnected">
            <summary>
            Called when data input source is disconnected.
            </summary>
            <remarks>
            Derived classes should call this method manually if <see cref="P:TimeSeriesFramework.Adapters.InputAdapterBase.UseAsyncConnect"/> is <c>true</c>.
            </remarks>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.InputAdapterBase.OnNewMeasurements(System.Collections.Generic.ICollection{TimeSeriesFramework.IMeasurement})">
            <summary>
            Raises the <see cref="E:TimeSeriesFramework.Adapters.InputAdapterBase.NewMeasurements"/> event.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.InputAdapterBase.OnProcessingComplete">
            <summary>
            Raises the <see cref="E:TimeSeriesFramework.Adapters.InputAdapterBase.ProcessingComplete"/> event.
            </summary>
        </member>
        <member name="E:TimeSeriesFramework.Adapters.InputAdapterBase.NewMeasurements">
            <summary>
            Provides new measurements from input adapter.
            </summary>
            <remarks>
            <see cref="F:TVA.EventArgs`1.Argument"/> is a collection of new measurements for host to process.
            </remarks>
        </member>
        <member name="E:TimeSeriesFramework.Adapters.InputAdapterBase.ProcessingComplete">
            <summary>
            Indicates to the host that processing for the input adapter has completed.
            </summary>
            <remarks>
            This event is expected to only be raised when an input adapter has been designed to process
            a finite amount of data, e.g., reading a historical range of data during temporal procesing.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.InputAdapterBase.OutputSourceIDs">
            <summary>
            Gets or sets <see cref="P:TimeSeriesFramework.MeasurementKey.Source"/> values used to filter output measurements.
            </summary>
            <remarks>
            This allows an adapter to associate itself with entire collections of measurements based on the source of the measurement keys.
            Set to <c>null</c> apply no filter.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.InputAdapterBase.RequestedOutputMeasurementKeys">
            <summary>
            Gets or sets output measurement keys that are requested by other adapters based on what adapter says it can provide.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.InputAdapterBase.IsConnected">
            <summary>
            Gets flag that determines if <see cref="T:TimeSeriesFramework.Adapters.InputAdapterBase"/> is connected.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.InputAdapterBase.UseAsyncConnect">
            <summary>
            Gets flag that determines if the data input connects asynchronously.
            </summary>
            <remarks>
            Derived classes should return true when data input source is connects asynchronously, otherwise return false.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.InputAdapterBase.ConnectionAttemptInterval">
            <summary>
            Gets or sets the connection attempt interval, in milliseconds, for the data input source.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.InputAdapterBase.Status">
            <summary>
            Returns the detailed status of the data input source.
            </summary>
            <remarks>
            Derived classes should extend status with implementation specific information.
            </remarks>
        </member>
        <member name="T:TimeSeriesFramework.Adapters.InputAdapterCollection">
            <summary>
            Represents a collection of <see cref="T:TimeSeriesFramework.Adapters.IInputAdapter"/> implementations.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.InputAdapterCollection.#ctor">
            <summary>
            Creates a new <see cref="T:TimeSeriesFramework.Adapters.InputAdapterCollection"/>.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.InputAdapterCollection.#ctor(System.Collections.Concurrent.ConcurrentDictionary{System.String,System.Threading.AutoResetEvent})">
            <summary>
            Creates a new <see cref="T:TimeSeriesFramework.Adapters.InputAdapterCollection"/>.
            </summary>
            <param name="waitHandles">Wait handle dictionary.</param>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.InputAdapterCollection.OnNewMeasurements(System.Collections.Generic.ICollection{TimeSeriesFramework.IMeasurement})">
            <summary>
            Raises the <see cref="E:TimeSeriesFramework.Adapters.InputAdapterCollection.NewMeasurements"/> event.
            </summary>
            <param name="measurements">New measurements.</param>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.InputAdapterCollection.OnProcessingComplete">
            <summary>
            Raises the <see cref="E:TimeSeriesFramework.Adapters.InputAdapterCollection.ProcessingComplete"/> event.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.InputAdapterCollection.InitializeItem(TimeSeriesFramework.Adapters.IInputAdapter)">
            <summary>
            Wires events and initializes new <see cref="T:TimeSeriesFramework.Adapters.IInputAdapter"/> implementation.
            </summary>
            <param name="item">New <see cref="T:TimeSeriesFramework.Adapters.IInputAdapter"/> implementation.</param>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.InputAdapterCollection.DisposeItem(TimeSeriesFramework.Adapters.IInputAdapter)">
            <summary>
            Unwires events and disposes of <see cref="T:TimeSeriesFramework.Adapters.IInputAdapter"/> implementation.
            </summary>
            <param name="item"><see cref="T:TimeSeriesFramework.Adapters.IInputAdapter"/> to dispose.</param>
        </member>
        <member name="E:TimeSeriesFramework.Adapters.InputAdapterCollection.NewMeasurements">
            <summary>
            This event will be raised when there are new measurements available from the input data source.
            </summary>
            <remarks>
            <see cref="F:TVA.EventArgs`1.Argument"/> is collection of new measurements for host to process.
            </remarks>
        </member>
        <member name="E:TimeSeriesFramework.Adapters.InputAdapterCollection.ProcessingComplete">
            <summary>
            Indicates to the host that processing for one of the input adapters has completed.
            </summary>
            <remarks>
            This event is expected to only be raised when an input adapter has been designed to process
            a finite amount of data, e.g., reading a historical range of data during temporal procesing.
            </remarks>
        </member>
        <member name="T:TimeSeriesFramework.Adapters.IOutputAdapter">
            <summary>
            Represents that abstract interface for any outgoing adapter.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.IOutputAdapter.QueueMeasurementsForProcessing(System.Collections.Generic.IEnumerable{TimeSeriesFramework.IMeasurement})">
            <summary>
            Queues measurements for processing. Measurements are automatically filtered to the defined <see cref="P:TimeSeriesFramework.Adapters.IAdapter.InputMeasurementKeys"/>.
            </summary>
            <param name="measurements">Collection of measurements to queue for processing.</param>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.IOutputAdapter.RemoveMeasurements(System.Int32)">
            <summary>
            Implementations of this function should remove a range of measurements from the internal measurement queue.
            </summary>
            <remarks>
            This method is typically only used to curtail size of measurement queue if it's getting too large.  If more
            points are requested than there are points available - all points in the queue should be removed.
            </remarks>
        </member>
        <member name="E:TimeSeriesFramework.Adapters.IOutputAdapter.UnprocessedMeasurements">
            <summary>
            Event is raised every five seconds allowing host to track total number of unprocessed measurements.
            </summary>
            <remarks>
            <para>
            Implementations of this interface are expected to report current queue size of unprocessed
            measurements so that if queue size reaches an unhealthy threshold, host can take evasive action.
            </para>
            <para>
            <see cref="F:TVA.EventArgs`1.Argument"/> is total number of unprocessed measurements.
            </para>
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.IOutputAdapter.InputSourceIDs">
            <summary>
            Gets or sets <see cref="P:TimeSeriesFramework.MeasurementKey.Source"/> values used to filter input measurements.
            </summary>
            <remarks>
            This allows an adapter to associate itself with entire collections of measurements based on the source of the measurement keys.
            Set to <c>null</c> apply no filter.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.IOutputAdapter.RequestedInputMeasurementKeys">
            <summary>
            Gets or sets input measurement keys that are requested by other adapters based on what adapter says it can provide.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.IOutputAdapter.OutputIsForArchive">
            <summary>
            Returns a flag that determines if measurements sent to this <see cref="T:TimeSeriesFramework.Adapters.IOutputAdapter"/> are
            destined for archival.
            </summary>
            <remarks>
            This property allows the <see cref="T:TimeSeriesFramework.Adapters.OutputAdapterCollection"/> to calculate statistics on how
            many measurements have been archived per minute. Historians would normally set this property
            to <c>true</c>; other custom exports would set this property to <c>false</c>.
            </remarks>
        </member>
        <member name="T:TimeSeriesFramework.Adapters.NamespaceDoc">
            <summary>
            Contains classes that define an adapter interface layer used to route measurements through a cycle of input, sorted actions and queued output.
            </summary>
        </member>
        <member name="T:TimeSeriesFramework.Adapters.OutputAdapterBase">
            <summary>
            Represents the base class for any outgoing data stream.
            </summary>
            <remarks>
            This base class acts as a measurement queue so that output adapters can temporarily go
            offline without losing any measurements to be processed. Derived classes are expected to
            override <see cref="M:TimeSeriesFramework.Adapters.OutputAdapterBase.ProcessMeasurements(TimeSeriesFramework.IMeasurement[])"/> to handle queued measurements.
            </remarks>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.OutputAdapterBase.#ctor">
            <summary>
            Constructs a new instance of the <see cref="T:TimeSeriesFramework.Adapters.OutputAdapterBase"/>.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.OutputAdapterBase.Dispose(System.Boolean)">
            <summary>
            Releases the unmanaged resources used by the <see cref="T:TimeSeriesFramework.Adapters.OutputAdapterBase"/> object and optionally releases the managed resources.
            </summary>
            <param name="disposing">true to release both managed and unmanaged resources; false to release only unmanaged resources.</param>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.OutputAdapterBase.Initialize">
            <summary>
            Initializes <see cref="T:TimeSeriesFramework.Adapters.OutputAdapterBase"/>.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.OutputAdapterBase.RefreshMetadata">
            <summary>
            Initiates request for metadata refresh for <see cref="T:TimeSeriesFramework.Adapters.OutputAdapterBase"/>, if implemented.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.OutputAdapterBase.Start">
            <summary>
            Starts this <see cref="T:TimeSeriesFramework.Adapters.OutputAdapterBase"/> and initiates connection cycle to data output stream.
            </summary>		
        </member>
        <member name="M:TimeSeriesFramework.Adapters.OutputAdapterBase.AttemptConnection">
            <summary>
            Attempts to connect to data output stream.
            </summary>
            <remarks>
            Derived classes should attempt connection to data output stream here.  Any exceptions thrown
            by this implementation will result in restart of the connection cycle.
            </remarks>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.OutputAdapterBase.OnConnected">
            <summary>
            Called when data input source connection is established.
            </summary>
            <remarks>
            Derived classes should call this method manually if <see cref="P:TimeSeriesFramework.Adapters.OutputAdapterBase.UseAsyncConnect"/> is <c>true</c>.
            </remarks>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.OutputAdapterBase.Stop">
            <summary>
            Stops this <see cref="T:TimeSeriesFramework.Adapters.OutputAdapterBase"/> and disconnects from data output stream.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.OutputAdapterBase.AttemptDisconnection">
            <summary>
            Attempts to disconnect from data output stream.
            </summary>
            <remarks>
            Derived classes should attempt disconnect from data output stream here.  Any exceptions thrown
            by this implementation will be reported to host via <see cref="E:TimeSeriesFramework.Adapters.AdapterBase.ProcessException"/> event.
            </remarks>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.OutputAdapterBase.OnDisconnected">
            <summary>
            Called when data input source is disconnected.
            </summary>
            <remarks>
            Derived classes should call this method manually if <see cref="P:TimeSeriesFramework.Adapters.OutputAdapterBase.UseAsyncConnect"/> is <c>true</c>.
            </remarks>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.OutputAdapterBase.QueueMeasurementForProcessing(TimeSeriesFramework.IMeasurement)">
            <summary>
            Queues a single measurement for processing. Measurement is automatically filtered to the defined <see cref="P:TimeSeriesFramework.Adapters.IAdapter.InputMeasurementKeys"/>.
            </summary>
            <param name="measurement">Measurement to queue for processing.</param>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.OutputAdapterBase.QueueMeasurementsForProcessing(System.Collections.Generic.IEnumerable{TimeSeriesFramework.IMeasurement})">
            <summary>
            Queues a collection of measurements for processing. Measurements are automatically filtered to the defined <see cref="P:TimeSeriesFramework.Adapters.IAdapter.InputMeasurementKeys"/>.
            </summary>
            <param name="measurements">Measurements to queue for processing.</param>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.OutputAdapterBase.ProcessMeasurements(TimeSeriesFramework.IMeasurement[])">
            <summary>
            Serializes measurements to data output stream.
            </summary>
            <remarks>
            <para>
            Derived classes must implement this function to process queued measurements.
            For example, this function would "archive" measurements if output adapter is for a historian.
            </para>
            <para>
            It is important that consumers "resume" connection cycle if processing fails (e.g., connection
            to archive is lost). Here is an example:
            <example>
            <code>
            protected virtual void ProcessMeasurements(IMeasurement[] measurements)
            {
                try
                {
                    // Process measurements...
                    foreach (IMeasurement measurement in measurement)
                    {
                        ArchiveMeasurement(measurement);
                    }
                }
                catch (Exception)
                {                
                    // So long as user hasn't requested to stop, restart connection cycle
                    if (Enabled)
                        Start();
                }
            }
            </code>
            </example>
            </para>
            </remarks>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.OutputAdapterBase.RemoveMeasurements(System.Int32)">
            <summary>
            This removes a range of measurements from the internal measurement queue.
            </summary>
            <remarks>
            This method is typically only used to curtail size of measurement queue if it's getting too large.  If more points are
            requested than there are points available - all points in the queue will be removed.
            </remarks>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.OutputAdapterBase.Flush">
            <summary>
            Blocks the current thread, if the <see cref="T:TimeSeriesFramework.Adapters.OutputAdapterBase"/> is connected, until all items
            in <see cref="T:TimeSeriesFramework.Adapters.OutputAdapterBase"/> queue are processed, and then stops processing.
            </summary>
            <remarks>
            <para>
            It is possible for items to be added to the queue while the flush is executing. The flush will continue to
            process items as quickly as possible until the queue is empty. Unless the user stops queueing items to be
            processed, the flush call may never return (not a happy situtation on shutdown).
            </para>
            <para>
            The <see cref="T:TimeSeriesFramework.Adapters.OutputAdapterBase"/> does not clear queue prior to destruction. If the user fails to call
            this method before the class is destructed, there may be items that remain unprocessed in the queue.
            </para>
            </remarks>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.OutputAdapterBase.OnUnprocessedMeasurements(System.Int32)">
            <summary>
            Raises the <see cref="E:TimeSeriesFramework.Adapters.OutputAdapterBase.UnprocessedMeasurements"/> event.
            </summary>
            <param name="unprocessedMeasurements">Total measurements in the queue that have not been processed.</param>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.OutputAdapterBase.OnProcessException(System.Exception)">
            <summary>
            Raises <see cref="E:TimeSeriesFramework.Adapters.AdapterBase.ProcessException"/> event.
            </summary>
            <param name="ex">Processing <see cref="T:System.Exception"/>.</param>
        </member>
        <member name="E:TimeSeriesFramework.Adapters.OutputAdapterBase.UnprocessedMeasurements">
            <summary>
            Event is raised every five seconds allowing host to track total number of unprocessed measurements.
            </summary>
            <remarks>
            <para>
            Base class reports current queue size of unprocessed measurements so that if queue size reaches
            an unhealthy threshold, host can take evasive action.
            </para>
            <para>
            <see cref="F:TVA.EventArgs`1.Argument"/> is total number of unprocessed measurements.
            </para>
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.OutputAdapterBase.RequeueOnException">
            <summary>
            Gets or sets whether or not to automatically place measurements back into the processing
            queue if an exception occurs while processing.  Defaults to false.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.OutputAdapterBase.InputSourceIDs">
            <summary>
            Gets or sets <see cref="P:TimeSeriesFramework.MeasurementKey.Source"/> values used to filter input measurements.
            </summary>
            <remarks>
            This allows an adapter to associate itself with entire collections of measurements based on the source of the measurement keys.
            Set to <c>null</c> apply no filter.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.OutputAdapterBase.RequestedInputMeasurementKeys">
            <summary>
            Gets or sets input measurement keys that are requested by other adapters based on what adapter says it can provide.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.OutputAdapterBase.OutputIsForArchive">
            <summary>
            Gets the flag that determines if measurements sent to this <see cref="T:TimeSeriesFramework.Adapters.OutputAdapterBase"/> are destined for archival.
            </summary>
            <remarks>
            This property allows the <see cref="T:TimeSeriesFramework.Adapters.OutputAdapterCollection"/> to calculate statistics on how many measurements have
            been archived per minute. Historians would normally set this property to <c>true</c>; other custom exports would set
            this property to <c>false</c>.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.OutputAdapterBase.SupportsTemporalProcessing">
            <summary>
            Gets the flag indicating if this <see cref="T:TimeSeriesFramework.Adapters.OutputAdapterBase"/> implementation supports temporal processing.
            </summary>
            <remarks>
            For output adapters that archive data it is assumed that the desired behavior will be to not support temporal processing
            since the data being processed has already been archived (i.e., no need to attempt to rearchive old data). As a result
            the default behavior for an output adapter is to not support temporal processing when <see cref="P:TimeSeriesFramework.Adapters.OutputAdapterBase.OutputIsForArchive"/>
            is <c>true</c>. If you have an output adapter that you want to support temporal data processing independent of the
            <see cref="P:TimeSeriesFramework.Adapters.OutputAdapterBase.OutputIsForArchive"/> value, then override this property and force the base value to the desired state.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.OutputAdapterBase.ProcessingInterval">
            <summary>
            Gets or sets the desired processing interval, in milliseconds, for the output adapter.
            </summary>
            <remarks>
            With the exception of the values of -1 and 0, this value specifies the desired processing interval for data, i.e.,
            basically a delay, or timer interval, overwhich to process data. A value of -1 means to use the default processing
            interval while a value of 0 means to process data as fast as possible.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.OutputAdapterBase.UseAsyncConnect">
            <summary>
            Gets flag that determines if the data output stream connects asynchronously.
            </summary>
            <remarks>
            Derived classes should return true when data output stream connects asynchronously, otherwise return false.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.OutputAdapterBase.ConnectionAttemptInterval">
            <summary>
            Gets or sets the connection attempt interval, in milliseconds, for the data output adapter.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.OutputAdapterBase.InternalProcessQueue">
            <summary>
            Allows derived class access to internal processing queue.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.OutputAdapterBase.Status">
            <summary>
            Returns the detailed status of the data input source.  Derived classes should extend status with implementation specific information.
            </summary>
        </member>
        <member name="T:TimeSeriesFramework.Adapters.OutputAdapterCollection">
            <summary>
            Represents a collection of <see cref="T:TimeSeriesFramework.Adapters.IOutputAdapter"/> implementations.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.OutputAdapterCollection.#ctor">
            <summary>
            Creates a new <see cref="T:TimeSeriesFramework.Adapters.OutputAdapterCollection"/>.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.OutputAdapterCollection.#ctor(System.Collections.Concurrent.ConcurrentDictionary{System.String,System.Threading.AutoResetEvent})">
            <summary>
            Creates a new <see cref="T:TimeSeriesFramework.Adapters.OutputAdapterCollection"/>.
            </summary>
            <param name="waitHandles">Wait handle dictionary.</param>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.OutputAdapterCollection.QueueMeasurementsForProcessing(System.Collections.Generic.IEnumerable{TimeSeriesFramework.IMeasurement})">
            <summary>
            Queues a collection of measurements for processing to each <see cref="T:TimeSeriesFramework.Adapters.IOutputAdapter"/> implementation in
            this <see cref="T:TimeSeriesFramework.Adapters.OutputAdapterCollection"/>.
            </summary>
            <param name="measurements">Measurements to queue for processing.</param>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.OutputAdapterCollection.RemoveMeasurements(System.Int32)">
            <summary>
            This function removes a range of measurements from the internal measurement queues. Note that the requested
            <paramref name="total"/> will be removed from each <see cref="T:TimeSeriesFramework.Adapters.IOutputAdapter"/> implementation in this
            <see cref="T:TimeSeriesFramework.Adapters.OutputAdapterCollection"/>.
            </summary>
            <param name="total">Total measurements to remove from the each <see cref="T:TimeSeriesFramework.Adapters.IOutputAdapter"/> queue.</param>
            <remarks>
            This method is typically only used to curtail size of measurement queue if it's getting too large.  If more points are
            requested than there are points available - all points in the queue will be removed.
            </remarks>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.OutputAdapterCollection.OnUnprocessedMeasurements(System.Int32)">
            <summary>
            Raises the <see cref="E:TimeSeriesFramework.Adapters.OutputAdapterCollection.UnprocessedMeasurements"/> event.
            </summary>
            <param name="unprocessedMeasurements">Total measurements in the queue that have not been processed.</param>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.OutputAdapterCollection.InitializeItem(TimeSeriesFramework.Adapters.IOutputAdapter)">
            <summary>
            Wires events and initializes new <see cref="T:TimeSeriesFramework.Adapters.IOutputAdapter"/> implementation.
            </summary>
            <param name="item">New <see cref="T:TimeSeriesFramework.Adapters.IOutputAdapter"/> implementation.</param>
        </member>
        <member name="M:TimeSeriesFramework.Adapters.OutputAdapterCollection.DisposeItem(TimeSeriesFramework.Adapters.IOutputAdapter)">
            <summary>
            Unwires events and disposes of <see cref="T:TimeSeriesFramework.Adapters.IOutputAdapter"/> implementation.
            </summary>
            <param name="item"><see cref="T:TimeSeriesFramework.Adapters.IOutputAdapter"/> to dispose.</param>
        </member>
        <member name="E:TimeSeriesFramework.Adapters.OutputAdapterCollection.UnprocessedMeasurements">
            <summary>
            Event is raised every five seconds allowing host to track total number of unprocessed measurements.
            </summary>
            <remarks>
            <para>
            Each <see cref="T:TimeSeriesFramework.Adapters.IOutputAdapter"/> implementation reports its current queue size of unprocessed
            measurements so that if queue size reaches an unhealthy threshold, host can take evasive action.
            </para>
            <para>
            <see cref="F:TVA.EventArgs`1.Argument"/> is total number of unprocessed measurements.
            </para>
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.OutputAdapterCollection.ProcessedMeasurements">
            <summary>
            Gets the total number of measurements processed and destined for archive thus far by each
            <see cref="T:TimeSeriesFramework.Adapters.IOutputAdapter"/> implementation in the <see cref="T:TimeSeriesFramework.Adapters.OutputAdapterCollection"/>.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Adapters.OutputAdapterCollection.OutputIsForArchive">
            <summary>
            Returns a flag that determines if all measurements sent to this <see cref="T:TimeSeriesFramework.Adapters.OutputAdapterCollection"/> are
            destined for archival.
            </summary>
        </member>
        <member name="T:TimeSeriesFramework.PrecisionInputTimer">
            <summary>
            Precision input timer.
            </summary>
            <remarks>
            This class is used to create highly accurate simulated data inputs aligned to the local clock.<br/>
            One static instance of this internal class is created per encountered frame rate.
            </remarks>
        </member>
        <member name="M:TimeSeriesFramework.PrecisionInputTimer.#ctor(System.Int32)">
            <summary>
            Create a new <see cref="T:TimeSeriesFramework.PrecisionInputTimer"/> class.
            </summary>
            <param name="framesPerSecond">Desired frame rate for <see cref="T:TVA.PrecisionTimer"/>.</param>
        </member>
        <member name="M:TimeSeriesFramework.PrecisionInputTimer.Finalize">
            <summary>
            Releases the unmanaged resources before the <see cref="T:TimeSeriesFramework.PrecisionInputTimer"/> object is reclaimed by <see cref="T:System.GC"/>.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.PrecisionInputTimer.Dispose">
            <summary>
            Releases all the resources used by the <see cref="T:TimeSeriesFramework.PrecisionInputTimer"/> object.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.PrecisionInputTimer.Dispose(System.Boolean)">
            <summary>
            Releases the unmanaged resources used by the <see cref="T:TimeSeriesFramework.PrecisionInputTimer"/> object and optionally releases the managed resources.
            </summary>
            <param name="disposing">true to release both managed and unmanaged resources; false to release only unmanaged resources.</param>
        </member>
        <member name="M:TimeSeriesFramework.PrecisionInputTimer.AddReference">
            <summary>
            Adds a reference to this <see cref="T:TimeSeriesFramework.PrecisionInputTimer"/>.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.PrecisionInputTimer.RemoveReference">
            <summary>
            Removes a reference to this <see cref="T:TimeSeriesFramework.PrecisionInputTimer"/>.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.PrecisionInputTimer.Attach(System.Int32,System.Action{System.Exception})">
            <summary>
            Attach to a <see cref="T:TimeSeriesFramework.PrecisionInputTimer"/> for the specified <paramref name="framesPerSecond"/>.
            </summary>
            <param name="framesPerSecond">Desired frames per second for the input timer.</param>
            <param name="exceptionHandler">Optional delegate to handle exception reporting from the timer.</param>        
            /// <returns>A <see cref="T:TimeSeriesFramework.PrecisionInputTimer"/> that can be used for the specified <paramref name="framesPerSecond"/>.</returns>
        </member>
        <member name="M:TimeSeriesFramework.PrecisionInputTimer.Detach(TimeSeriesFramework.PrecisionInputTimer@)">
            <summary>
            Detatch from the <see cref="T:TimeSeriesFramework.PrecisionInputTimer"/>.
            </summary>
            <param name="timer">Timer instance to detach from.</param>
            <remarks>
            Timer reference will be set to <c>null</c> after detatch.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.PrecisionInputTimer.FramesPerSecond">
            <summary>
            Gets frames per second for this <see cref="T:TimeSeriesFramework.PrecisionInputTimer"/>.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.PrecisionInputTimer.FrameMilliseconds">
            <summary>
            Gets array of frame millisecond times for this <see cref="T:TimeSeriesFramework.PrecisionInputTimer"/>.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.PrecisionInputTimer.ReferenceCount">
            <summary>
            Gets reference count for this <see cref="T:TimeSeriesFramework.PrecisionInputTimer"/>.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.PrecisionInputTimer.Resynchronizations">
            <summary>
            Gets number of resynchronizations that have occurred for this <see cref="T:TimeSeriesFramework.PrecisionInputTimer"/>.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.PrecisionInputTimer.LastFrameTime">
            <summary>
            Gets time of last frame, in ticks.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.PrecisionInputTimer.FrameWaitHandle">
            <summary>
            Gets a reference to the frame wait handle.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.PrecisionInputTimer.ExceptionHandler">
            <summary>
            Gets or sets function used to handle exceptions.
            </summary>
        </member>
        <member name="T:TimeSeriesFramework.Statistics.StatisticCalculationFunction">
            <summary>
            Method signature for function used to calculate a statistic for a given object.
            </summary>
            <param name="source">Source object.</param>
            <param name="arguments">Any needed arguments for statistic calculation.</param>
            <returns>Actual calculated statistic.</returns>
        </member>
        <member name="T:TimeSeriesFramework.Statistics.Statistic">
            <summary>
            Represents a statistic calculation.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Statistics.Statistic.Method">
            <summary>
            The method to be called to calculate the statistic.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Statistics.Statistic.Source">
            <summary>
            The name of the source of the statistic.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Statistics.Statistic.Index">
            <summary>
            The index of the signal associated with the statistic.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Statistics.Statistic.Arguments">
            <summary>
            The arguments to be passed into the statistic calculation function.
            </summary>
        </member>
        <member name="T:TimeSeriesFramework.Statistics.GetAcronymFunction">
            <summary>
            Defines function signature for getting the acronym of a source.
            </summary>
            <param name="source">The source.</param>
            <returns>The acronym of the given source.</returns>
        </member>
        <member name="T:TimeSeriesFramework.Statistics.StatisticsEngine">
            <summary>
            Represents the engine that computes statistics within applications of the TimeSeriesFramework.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Statistics.StatisticsEngine.#ctor">
            <summary>
            Creates a new instance of the <see cref="T:TimeSeriesFramework.Statistics.StatisticsEngine"/> class.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Statistics.StatisticsEngine.Initialize">
            <summary>
            Initializes <see cref="T:TimeSeriesFramework.Statistics.StatisticsEngine"/>.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Statistics.StatisticsEngine.Start">
            <summary>
            Starts the <see cref="T:TimeSeriesFramework.Statistics.StatisticsEngine"/> or restarts it if it is already running.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Statistics.StatisticsEngine.Stop">
            <summary>
            Stops the <see cref="T:TimeSeriesFramework.Statistics.StatisticsEngine"/>.
            </summary>		
        </member>
        <member name="M:TimeSeriesFramework.Statistics.StatisticsEngine.ReloadStatistics">
            <summary>
            Loads or reloads system statistics.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Statistics.StatisticsEngine.MapMeasurement(TimeSeriesFramework.IMeasurement,System.String)">
            <summary>
            Maps the given measurement to the given source name.
            </summary>
            <param name="measurement">The measurement to be mapped.</param>
            <param name="source">The name of the source of the measurement.</param>
        </member>
        <member name="M:TimeSeriesFramework.Statistics.StatisticsEngine.AddSource(System.String,System.Object)">
            <summary>
            Adds the given source under the source collection with the given source name.
            </summary>
            <param name="sourceName">The name of the source.</param>
            <param name="source">The source to be added.</param>
        </member>
        <member name="M:TimeSeriesFramework.Statistics.StatisticsEngine.MapAcronymFunction(System.String,TimeSeriesFramework.Statistics.GetAcronymFunction)">
            <summary>
            Maps the given source name to the given acronym function.
            </summary>
            <param name="sourceName">The source name.</param>
            <param name="acronymFunction">The function used to get the acronym of the source.</param>
        </member>
        <member name="M:TimeSeriesFramework.Statistics.StatisticsEngine.GetShortStatus(System.Int32)">
            <summary>
            Gets a short one-line status of this <see cref="T:TimeSeriesFramework.Statistics.StatisticsEngine"/>.
            </summary>
            <param name="maxLength">Maximum number of available characters for display.</param>
            <returns>A short one-line summary of the current status of this <see cref="T:TimeSeriesFramework.Statistics.StatisticsEngine"/>.</returns>
        </member>
        <member name="M:TimeSeriesFramework.Statistics.StatisticsEngine.AssignParentCollection(TimeSeriesFramework.Adapters.IAdapterCollection)">
            <summary>
            Assigns the reference to the parent <see cref="T:TimeSeriesFramework.Adapters.IAdapterCollection"/> that will contain this <see cref="T:TimeSeriesFramework.Adapters.AdapterBase"/>.
            </summary>
            <param name="parent">Parent adapter collection.</param>
        </member>
        <member name="M:TimeSeriesFramework.Statistics.StatisticsEngine.Dispose(System.Boolean)">
            <summary>
            Releases the unmanaged resources used by the <see cref="T:TimeSeriesFramework.Statistics.StatisticsEngine"/> object and optionally releases the managed resources.
            </summary>
            <param name="disposing">true to release both managed and unmanaged resources; false to release only unmanaged resources.</param>
        </member>
        <member name="M:TimeSeriesFramework.Statistics.StatisticsEngine.#cctor">
            <summary>
            Static initialization of <see cref="T:TimeSeriesFramework.Statistics.StatisticsEngine"/> class.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Statistics.StatisticsEngine.RegexMatch(System.String,System.String)">
            <summary>
            Determines whether the given signal reference matches the
            signal reference regular expression using the given suffix.
            </summary>
            <param name="signalReference">The signal reference to be matched against the regular expression.</param>
            <param name="suffix">The suffix used by a particular type of statistic.</param>
            <returns>Flag indicating whether the signal reference matches the regular expression.</returns>
            <remarks>
            The format for signal reference of statistics is: <c>ACRONYM!SUFFIX-ST#</c>,
            where <c>ACRONYM</c> is the acronym of the measurement's source, <c>SUFFIX</c>
            is the suffix given as a parameter to this method, and <c>#</c> is an index
            used to differentiate between statistics with the same source and type.
            </remarks>
        </member>
        <member name="M:TimeSeriesFramework.Statistics.StatisticsEngine.WaitForDefaultInstance(System.Int32)">
            <summary>
            Waits for the default instance to be created.
            </summary>
            <param name="timeout">The amount of time to wait before giving up.</param>
            <returns>Boolean to indicate whether the default instance was created or not.</returns>
        </member>
        <member name="M:TimeSeriesFramework.Statistics.StatisticsEngine.GetAdapterAcronym(System.Object)">
            <summary>
            Gets the adapter acronym of the given source object.
            </summary>
            <param name="source">The source object.</param>
            <returns>The given source object's adapter acronym.</returns>
        </member>
        <member name="E:TimeSeriesFramework.Statistics.StatisticsEngine.Loaded">
            <summary>
            Event is raised when statistics are loaded from the database.
            </summary>
        </member>
        <member name="E:TimeSeriesFramework.Statistics.StatisticsEngine.BeforeCalculate">
            <summary>
            Event is raised before statistics calculation.
            </summary>
        </member>
        <member name="E:TimeSeriesFramework.Statistics.StatisticsEngine.Calculated">
            <summary>
            Event is raised after statistics calculation.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Statistics.StatisticsEngine.DefinedMeasurements">
            <summary>
            Returns the collection of statistics measurements defined in the system.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Statistics.StatisticsEngine.SupportsTemporalProcessing">
            <summary>
            Gets the flag indicating if this adapter supports temporal processing.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Statistics.StatisticsEngine.Status">
            <summary>
            Returns the detailed status of the statistics engine.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Statistics.StatisticsEngine.Default">
            <summary>
            Gets the <see cref="T:TimeSeriesFramework.Statistics.StatisticsEngine"/> singleton instance.
            </summary>
        </member>
        <member name="T:TimeSeriesFramework.Statistics.StatisticsEngine.UnmappedMeasurementsEventArgs">
            <summary>
            Represents arguments to an event that needs to pass a read-only
            collection of unmapped measurements to its subscribers.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Statistics.StatisticsEngine.UnmappedMeasurementsEventArgs.#ctor(System.Collections.ObjectModel.ReadOnlyCollection{TimeSeriesFramework.IMeasurement})">
            <summary>
            Creates a new instance of the <see cref="T:TimeSeriesFramework.Statistics.StatisticsEngine.UnmappedMeasurementsEventArgs"/> class.
            </summary>
            <param name="undefinedMeasurements">The undefined measurements.</param>
        </member>
        <member name="P:TimeSeriesFramework.Statistics.StatisticsEngine.UnmappedMeasurementsEventArgs.UnmappedMeasurements">
            <summary>
            Gets the collection of undefined measurements.
            </summary>
        </member>
        <member name="T:TimeSeriesFramework.Statistics.StatisticValueState">
            <summary>
            Represents an object that can track the current and previous
            state of a statistic and get the difference between them.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Statistics.StatisticValueState.#ctor(System.String)">
            <summary>
            Creates a new <see cref="T:TimeSeriesFramework.Statistics.StatisticValueState"/>.
            </summary>
            <param name="name">Name of statistic.</param>
        </member>
        <member name="M:TimeSeriesFramework.Statistics.StatisticValueState.GetDifference">
            <summary>
            Gets the statistical difference between current and previous statistic value.
            </summary>
            <returns>Difference from last cached statistic value.</returns>
        </member>
        <member name="T:TimeSeriesFramework.Statistics.StatisticValueStateCache">
            <summary>
            Caches statistic values to provide the difference between the
            current and previous values of any statistic given that
            statistic's source, name, and current value.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Statistics.StatisticValueStateCache.#ctor">
            <summary>
            Creates a new instance of the <see cref="T:TimeSeriesFramework.Statistics.StatisticValueStateCache"/>.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Statistics.StatisticValueStateCache.GetDifference(System.Object,System.Double,System.String)">
            <summary>
            Gets the statistical difference between current and previous statistic value.
            </summary>
            <param name="source">Source Device.</param>
            <param name="statistic">Current statistic value.</param>
            <param name="name">Name of statistic calculation.</param>
            <returns>Difference from last cached statistic value.</returns>
        </member>
        <member name="T:TimeSeriesFramework.TimeSeriesStartupOperations">
            <summary>
            Defines a data operations to be performed at startup.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.TimeSeriesStartupOperations.PerformTimeSeriesStartupOperations(System.Data.IDbConnection,System.Type,System.String,System.String,System.Action{System.Object,TVA.EventArgs{System.String}},System.Action{System.Object,TVA.EventArgs{System.Exception}})">
            <summary>
            Delegates control to the data operations that are to be performed at startup.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.TimeSeriesStartupOperations.ValidateDefaultNode(System.Data.IDbConnection,System.String)">
            <summary>
            Data operation to validate and ensure there is a node in the database.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.TimeSeriesStartupOperations.ValidateActiveMeasurements(System.Data.IDbConnection,System.String)">
            <summary>
            Data operation to validate and ensure there is a record
            in the ConfigurationEntity table for ActiveMeasurements.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.TimeSeriesStartupOperations.ValidateExternalDataPublisher(System.Data.IDbConnection,System.String)">
            <summary>
            Data operation to validate and ensure there is a record in the
            CustomActionAdapter table for the external data publisher.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.TimeSeriesStartupOperations.ValidateStatistics(System.Data.IDbConnection,System.String)">
            <summary>
            Data operation to validate and ensure that certain records that
            are required for statistics calculations exist in the database.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.TimeSeriesStartupOperations.ValidateAlarming(System.Data.IDbConnection,System.String)">
            <summary>
            Data operation to validate and ensure that certain records
            that are required for alarming exist in the database.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.TimeSeriesStartupOperations.ParameterizedQueryString(System.Type,System.String,System.String[])">
            <summary>
            Creates a parameterized query string for the underlying database type 
            based on the given format string and the parameter names.
            </summary>
            <param name="connectionType">The adapter type used to determine the underlying database type.</param>
            <param name="format">A composite format string.</param>
            <param name="parameterNames">A string array that contains zero or more parameter names to format.</param>
            <returns>A parameterized query string based on the given format and parameter names.</returns>
        </member>
        <member name="T:TimeSeriesFramework.Transport.ClientConnection">
            <summary>
            Represents a <see cref="T:TimeSeriesFramework.Transport.DataSubscriber"/> client connection to the <see cref="T:TimeSeriesFramework.Transport.DataPublisher"/>.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Transport.ClientConnection.#ctor(TimeSeriesFramework.Transport.DataPublisher,System.Guid,TVA.Communication.TcpServer)">
            <summary>
            Creates a new <see cref="T:TimeSeriesFramework.Transport.ClientConnection"/> instance.
            </summary>
            <param name="parent">Parent data publisher.</param>
            <param name="clientID">Client ID of associated connection.</param>
            <param name="commandChannel"><see cref="T:TVA.Communication.TcpServer"/> command channel used to lookup connection information.</param>
        </member>
        <member name="M:TimeSeriesFramework.Transport.ClientConnection.Finalize">
            <summary>
            Releases the unmanaged resources before the <see cref="T:TimeSeriesFramework.Transport.ClientConnection"/> object is reclaimed by <see cref="T:System.GC"/>.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Transport.ClientConnection.Dispose">
            <summary>
            Releases all the resources used by the <see cref="T:TimeSeriesFramework.Transport.ClientConnection"/> object.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Transport.ClientConnection.Dispose(System.Boolean)">
            <summary>
            Releases the unmanaged resources used by the <see cref="T:TimeSeriesFramework.Transport.ClientConnection"/> object and optionally releases the managed resources.
            </summary>
            <param name="disposing">true to release both managed and unmanaged resources; false to release only unmanaged resources.</param>
        </member>
        <member name="M:TimeSeriesFramework.Transport.ClientConnection.UpdateKeyIVs">
            <summary>
            Creates or updates cipher keys.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Transport.ClientConnection.RotateCipherKeys">
            <summary>
            Rotates or initializes the crypto keys for this <see cref="T:TimeSeriesFramework.Transport.ClientConnection"/>.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Transport.ClientConnection.ClientID">
            <summary>
            Gets client ID of this <see cref="T:TimeSeriesFramework.Transport.ClientConnection"/>.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Transport.ClientConnection.DataChannel">
            <summary>
            Gets or sets reference to <see cref="T:TVA.Communication.UdpServer"/> data channel, attaching to or detaching from events as needed, associated with this <see cref="T:TimeSeriesFramework.Transport.ClientConnection"/>.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Transport.ClientConnection.PublishChannel">
            <summary>
            Gets <see cref="T:TVA.Communication.IServer"/> publication channel - that is, data channel if defined otherwise command channel.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Transport.ClientConnection.IsConnected">
            <summary>
            Gets connected state of the associated client socket.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Transport.ClientConnection.IsSubscribed">
            <summary>
            Gets or sets IsSubscribed state.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Transport.ClientConnection.SubscriberID">
            <summary>
            Gets or sets the <see cref="T:System.Guid"/> based subscriber ID of this <see cref="T:TimeSeriesFramework.Transport.ClientConnection"/>.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Transport.ClientConnection.SubscriberAcronym">
            <summary>
            Gets or sets the subscriber acronym of this <see cref="T:TimeSeriesFramework.Transport.ClientConnection"/>.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Transport.ClientConnection.SubscriberName">
            <summary>
            Gets or sets the subscriber name of this <see cref="T:TimeSeriesFramework.Transport.ClientConnection"/>.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Transport.ClientConnection.SubscriberInfo">
            <summary>
            Gets or sets subscriber info for this <see cref="T:TimeSeriesFramework.Transport.ClientConnection"/>.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Transport.ClientConnection.ConnectionID">
            <summary>
            Gets the connection identification of this <see cref="T:TimeSeriesFramework.Transport.ClientConnection"/>.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Transport.ClientConnection.Authenticated">
            <summary>
            Gets or sets authenticated state of this <see cref="T:TimeSeriesFramework.Transport.ClientConnection"/>.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Transport.ClientConnection.SharedSecret">
            <summary>
            Gets or sets shared secret used to lookup cipher keys only known to client and server.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Transport.ClientConnection.KeyIVs">
            <summary>
            Gets active and standby keys and initialization vectors.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Transport.ClientConnection.CipherIndex">
            <summary>
            Gets current cipher index.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Transport.ClientConnection.LastCipherKeyUpdateTime">
            <summary>
            Gets time of last cipher key update.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Transport.ClientConnection.IPAddress">
            <summary>
            Gets the IP address of the remote client connection.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Transport.ClientConnection.Subscription">
            <summary>
            Gets or sets subscription associated with this <see cref="T:TimeSeriesFramework.Transport.ClientConnection"/>.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Transport.ClientConnection.Name">
            <summary>
            Gets the subscriber name of this <see cref="T:TimeSeriesFramework.Transport.ClientConnection"/>.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Transport.ClientConnection.OperationalModes">
            <summary>
            Gets or sets a set of flags that define ways in
            which the subscriber and publisher communicate.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Transport.ClientConnection.Encoding">
            <summary>
            Character encoding used to send messages to subscriber.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Transport.ClientConnection.Status">
            <summary>
            Gets a formatted message describing the status of this <see cref="T:TimeSeriesFramework.Transport.ClientConnection"/>.
            </summary>
        </member>
        <member name="T:TimeSeriesFramework.Transport.Common">
            <summary>
            Common static methods and extensions for transport library.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Transport.Common.IsSolicited(TimeSeriesFramework.Transport.ServerResponse)">
            <summary>
            Returns <c>true</c> if <see cref="T:TimeSeriesFramework.Transport.ServerResponse"/> code is for a solicited <see cref="T:TimeSeriesFramework.Transport.ServerCommand"/>.
            </summary>
            <remarks>
            Only the <see cref="F:TimeSeriesFramework.Transport.ServerResponse.Succeeded"/> and <see cref="F:TimeSeriesFramework.Transport.ServerResponse.Failed"/> response codes are from solicited server commands.
            </remarks>
            <param name="responseCode"><see cref="T:TimeSeriesFramework.Transport.ServerResponse"/> code to test.</param>
            <returns><c>true</c> if <see cref="T:TimeSeriesFramework.Transport.ServerResponse"/> code is for a solicited <see cref="T:TimeSeriesFramework.Transport.ServerCommand"/>; otherwise <c>false</c>.</returns>
        </member>
        <member name="P:TimeSeriesFramework.Transport.Common.CanUseManagedEncryption">
            <summary>
            Gets flag that determines if managed encryption can be used.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Transport.Common.SymmetricAlgorithm">
            <summary>
            Gets an AES symmetric algorithm to use for encryption or decryption.
            </summary>
        </member>
        <member name="T:TimeSeriesFramework.Transport.ServerCommand">
            <summary>
            Server commands received by <see cref="T:TimeSeriesFramework.Transport.DataPublisher"/> and sent by <see cref="T:TimeSeriesFramework.Transport.DataSubscriber"/>.
            </summary>
            <remarks>
            Solicited server commands will receive a <see cref="F:TimeSeriesFramework.Transport.ServerResponse.Succeeded"/> or <see cref="F:TimeSeriesFramework.Transport.ServerResponse.Failed"/>
            response code along with an associated success or failure message. Message type for successful responses will be based
            on server command - for example, server response for a successful MetaDataRefresh command will return a serialized
            <see cref="T:System.Data.DataSet"/> of the available server metadata. Message type for failed responses will always be a string of
            text respresenting the error message.
            </remarks>
        </member>
        <member name="F:TimeSeriesFramework.Transport.ServerCommand.Authenticate">
            <summary>
            Authenticate command.
            </summary>
            <remarks>
            Requests that server authenticate client with the following encrypted authentication packet.
            Successful return message type will be string indicating client ID was validated.
            Client should not attempt further steps if authentication fails, user will need to take action.
            Client should send MetaDataRefresh and Subscribe commands upon successful authentication.
            If server is setup to not require authentication, authentication step can be skipped - however
            it will be up to the implementation to know if authentication is required - the server cannot be
            queried to determine if authentication is required.
            It is expected that use of this protocol between gateways over a shared network (i.e., the lower
            security zone) will require authentication.
            It is expected that use of this protocol between gateway and other systems (e.g., a PDC) in a
            private network (i.e., the higher security zone) can be setup to not require authentication.
            </remarks>
        </member>
        <member name="F:TimeSeriesFramework.Transport.ServerCommand.MetaDataRefresh">
            <summary>
            Meta data refresh command.
            </summary>
            <remarks>
            Requests that server send an updated set of metadata so client can refresh its point list.
            Successful return message type will be a <see cref="T:System.Data.DataSet"/> containing server device and measurement metadata.
            Received device list should be defined as children of the "parent" server device connection similar to the way
            PMUs are defined as children of a parent PDC device connection.
            Devices and measurements contain unique Guids that should be used to key metadata updates in local repository.
            </remarks>
        </member>
        <member name="F:TimeSeriesFramework.Transport.ServerCommand.Subscribe">
            <summary>
            Subscribe command.
            </summary>
            <remarks>
            Requests a subscription of streaming data from server based on connection string that follows.
            It will not be necessary to stop an existing subscription before requesting a new one.
            Successful return message type will be string indicating total number of allowed points.
            Client should wait for UpdateSignalIndexCache and UpdateBaseTime response codes before attempting
            to parse data when using the compact measurement format.
            </remarks>
        </member>
        <member name="F:TimeSeriesFramework.Transport.ServerCommand.Unsubscribe">
            <summary>
            Unsubscribe command.
            </summary>
            <remarks>
            Requests that server stop sending streaming data to the client and cancel the current subscription.
            </remarks>
        </member>
        <member name="F:TimeSeriesFramework.Transport.ServerCommand.RotateCipherKeys">
            <summary>
            Rotate cipher keys.
            </summary>
            <remarks>
            Manually requests that server send a new set of cipher keys for data packet encryption.
            </remarks>
        </member>
        <member name="F:TimeSeriesFramework.Transport.ServerCommand.UpdateProcessingInterval">
            <summary>
            Update processing interval.
            </summary>
            <remarks>
            Manually requests server to update the processing interval with the following specified value.
            </remarks>
        </member>
        <member name="F:TimeSeriesFramework.Transport.ServerCommand.DefineOperationalModes">
            <summary>
            Define operational modes for subscriber connection.
            </summary>
            <remarks>
            As soon as connection is established, requests that server set operational
            modes that affect how the subscriber and publisher will communicate.
            </remarks>
        </member>
        <member name="T:TimeSeriesFramework.Transport.ServerResponse">
            <summary>
            Server responses sent by <see cref="T:TimeSeriesFramework.Transport.DataPublisher"/> and received by <see cref="T:TimeSeriesFramework.Transport.DataSubscriber"/>.
            </summary>
        </member>
        <member name="F:TimeSeriesFramework.Transport.ServerResponse.Succeeded">
            <summary>
            Command succeeded response.
            </summary>
            <remarks>
            Informs client that its solicited server command succeeded, original command and success message follow.
            </remarks>
        </member>
        <member name="F:TimeSeriesFramework.Transport.ServerResponse.Failed">
            <summary>
            Command failed response.
            </summary>
            <remarks>
            Informs client that its solicited server command failed, original command and failure message follow.
            </remarks>
        </member>
        <member name="F:TimeSeriesFramework.Transport.ServerResponse.DataPacket">
            <summary>
            Data packet response.
            </summary>
            <remarks>
            Unsolicited response informs client that a data packet follows.
            </remarks>
        </member>
        <member name="F:TimeSeriesFramework.Transport.ServerResponse.UpdateSignalIndexCache">
            <summary>
            Update signal index cache response.
            </summary>
            <remarks>
            Unsolicited response requests that client update its runtime signal index cache with the one that follows.
            </remarks>
        </member>
        <member name="F:TimeSeriesFramework.Transport.ServerResponse.UpdateBaseTimes">
            <summary>
            Update runtime base-timestamp offsets response.
            </summary>
            <remarks>
            Unsolicited response requests that client update its runtime base-timestamp offsets with those that follow.
            </remarks>
        </member>
        <member name="F:TimeSeriesFramework.Transport.ServerResponse.UpdateCipherKeys">
            <summary>
            Update runtime cipher keys response.
            </summary>
            <remarks>
            Response, solicited or unsolicited, requests that client update its runtime data cipher keys with those that follow.
            </remarks>
        </member>
        <member name="F:TimeSeriesFramework.Transport.ServerResponse.DataStartTime">
            <summary>
            Data start time response packet.
            </summary>
            <remarks>
            Unsolicited response provides the start time of data being processed from the first measurement.
            </remarks>
        </member>
        <member name="F:TimeSeriesFramework.Transport.ServerResponse.ProcessingComplete">
            <summary>
            Processing complete notification.
            </summary>
            <remarks>
            Unsolicited response provides notification that input processing has completed, typically via temporal constraint.
            </remarks>
        </member>
        <member name="F:TimeSeriesFramework.Transport.ServerResponse.NoOP">
            <summary>
            No operation keep-alive ping.
            </summary>
            <remarks>
            The command channel can remain quiet for some time, this command allows a period test of client connectivity.
            </remarks>
        </member>
        <member name="T:TimeSeriesFramework.Transport.DataPacketFlags">
            <summary>
            <see cref="T:TimeSeriesFramework.Transport.DataPublisher"/> data packet flags.
            </summary>
        </member>
        <member name="F:TimeSeriesFramework.Transport.DataPacketFlags.Synchronized">
            <summary>
            Determines if data packet is synchronized.
            </summary>
            <remarks>
            Bit set = synchronized, bit clear = unsynchronized.
            </remarks>
        </member>
        <member name="F:TimeSeriesFramework.Transport.DataPacketFlags.Compact">
            <summary>
            Determines if serialized measurement is compact.
            </summary>
            <remarks>
            Bit set = compact, bit clear = full fidelity.
            </remarks>
        </member>
        <member name="F:TimeSeriesFramework.Transport.DataPacketFlags.CipherIndex">
            <summary>
            Detemines which cipher index to use when encrypting data packet.
            </summary>
            <remarks>
            Bit set = use odd cipher index (i.e., 1), bit clear = use even cipher index (i.e., 0).
            </remarks>
        </member>
        <member name="F:TimeSeriesFramework.Transport.DataPacketFlags.NoFlags">
            <summary>
            No flags set.
            </summary>
            <remarks>
            This would represent unsynchronized, full fidelity measurement data packets.
            </remarks>
        </member>
        <member name="T:TimeSeriesFramework.Transport.OperationalModes">
            <summary>
            Operational modes that affect how <see cref="T:TimeSeriesFramework.Transport.DataPublisher"/> and <see cref="T:TimeSeriesFramework.Transport.DataSubscriber"/> communicate.
            </summary>
            <remarks>
            Operational modes only apply to fundamental protocol control.
            </remarks>
        </member>
        <member name="F:TimeSeriesFramework.Transport.OperationalModes.VersionMask">
            <summary>
            Mask to get version number of protocol.
            </summary>
            <remarks>
            Version number is currently set to 0.
            </remarks>
        </member>
        <member name="F:TimeSeriesFramework.Transport.OperationalModes.CompressionModeMask">
            <summary>
            Mask to get mode of compression.
            </summary>
            <remarks>
            Compression mode is currently not supported.
            These bits are simply reserved for different compression modes.
            </remarks>
        </member>
        <member name="F:TimeSeriesFramework.Transport.OperationalModes.EncodingMask">
            <summary>
            Mask to get character encoding used when exchanging messages between publisher and subscriber.
            </summary>
            <remarks>
            00 = UTF-16 little endian<br/>
            01 = UTF-16 big endian<br/>
            10 = UTF-8<br/>
            11 = ANSI
            </remarks>
        </member>
        <member name="F:TimeSeriesFramework.Transport.OperationalModes.UseCommonSerializationFormat">
            <summary>
            Determines type of serialization to use when exchanging signal index cache and metadata.
            </summary>
            <remarks>
            Bit set = common serialization format, bit clear = .NET serialization format
            </remarks>
        </member>
        <member name="F:TimeSeriesFramework.Transport.OperationalModes.CompressSignalIndexCache">
            <summary>
            Determines whether the signal index cache is compressed when exchanging between publisher and subscriber.
            </summary>
            <remarks>
            Bit set = compress, bit clear = no compression
            </remarks>
        </member>
        <member name="F:TimeSeriesFramework.Transport.OperationalModes.CompressMetadata">
            <summary>
            Determines whether is compressed when exchanging between publisher and subscriber.
            </summary>
            <remarks>
            Bit set = compress, bit clear = no compression
            </remarks>
        </member>
        <member name="F:TimeSeriesFramework.Transport.OperationalModes.NoFlags">
            <summary>
            No flags set.
            </summary>
            <remarks>
            This would represent protocol version 0,
            UTF-16 little endian character encoding,
            .NET serialization and no compression.
            </remarks>
        </member>
        <member name="T:TimeSeriesFramework.Transport.OperationalEncoding">
            <summary>
            Enumeration for character encodings supported by the Gateway Exchange Protocol.
            </summary>
        </member>
        <member name="F:TimeSeriesFramework.Transport.OperationalEncoding.Unicode">
            <summary>
            UTF-16 little endian
            </summary>
        </member>
        <member name="F:TimeSeriesFramework.Transport.OperationalEncoding.BigEndianUnicode">
            <summary>
            UTF-16 bit endian
            </summary>
        </member>
        <member name="F:TimeSeriesFramework.Transport.OperationalEncoding.UTF8">
            <summary>
            UTF-8
            </summary>
        </member>
        <member name="F:TimeSeriesFramework.Transport.OperationalEncoding.ANSI">
            <summary>
            ANSI
            </summary>
        </member>
        <member name="T:TimeSeriesFramework.Transport.GatewayCompressionMode">
            <summary>
            Enumeration for compression modes supported by the Gateway Exchange Protocol.
            </summary>
        </member>
        <member name="F:TimeSeriesFramework.Transport.GatewayCompressionMode.GZip">
            <summary>
            GZip compression
            </summary>
        </member>
        <member name="F:TimeSeriesFramework.Transport.GatewayCompressionMode.None">
            <summary>
            No compression
            </summary>
        </member>
        <member name="T:TimeSeriesFramework.Transport.DataPublisher">
            <summary>
            Represents a data publishing server that allows multiple connections for data subscriptions.
            </summary>
        </member>
        <member name="F:TimeSeriesFramework.Transport.DataPublisher.DefaultRequireAuthentication">
            <summary>
            Default value for <see cref="P:TimeSeriesFramework.Transport.DataPublisher.RequireAuthentication"/>.
            </summary>
        </member>
        <member name="F:TimeSeriesFramework.Transport.DataPublisher.DefaultEncryptPayload">
            <summary>
            Default value for <see cref="P:TimeSeriesFramework.Transport.DataPublisher.EncryptPayload"/>.
            </summary>
        </member>
        <member name="F:TimeSeriesFramework.Transport.DataPublisher.DefaultSharedDatabase">
            <summary>
            Default value for <see cref="P:TimeSeriesFramework.Transport.DataPublisher.SharedDatabase"/>.
            </summary>
        </member>
        <member name="F:TimeSeriesFramework.Transport.DataPublisher.DefaultAllowSynchronizedSubscription">
            <summary>
            Default value for <see cref="P:TimeSeriesFramework.Transport.DataPublisher.AllowSynchronizedSubscription"/>.
            </summary>
        </member>
        <member name="F:TimeSeriesFramework.Transport.DataPublisher.DefaultUseBaseTimeOffsets">
            <summary>
            Default value for <see cref="P:TimeSeriesFramework.Transport.DataPublisher.UseBaseTimeOffsets"/>.
            </summary>
        </member>
        <member name="F:TimeSeriesFramework.Transport.DataPublisher.DefaultCipherKeyRotationPeriod">
            <summary>
            Default value for <see cref="P:TimeSeriesFramework.Transport.DataPublisher.CipherKeyRotationPeriod"/>.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Transport.DataPublisher.#ctor">
            <summary>
            Creates a new <see cref="T:TimeSeriesFramework.Transport.DataPublisher"/>.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Transport.DataPublisher.#ctor(System.Collections.Concurrent.ConcurrentDictionary{System.String,System.Threading.AutoResetEvent})">
            <summary>
            Creates a new <see cref="T:TimeSeriesFramework.Transport.DataPublisher"/>.
            </summary>
            <param name="waitHandles">Wait handle dictionary.</param>
        </member>
        <member name="M:TimeSeriesFramework.Transport.DataPublisher.Finalize">
            <summary>
            Releases the unmanaged resources before the <see cref="T:TimeSeriesFramework.Transport.DataPublisher"/> object is reclaimed by <see cref="T:System.GC"/>.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Transport.DataPublisher.Dispose(System.Boolean)">
            <summary>
            Releases the unmanaged resources used by the <see cref="T:TimeSeriesFramework.Transport.DataPublisher"/> object and optionally releases the managed resources.
            </summary>
            <param name="disposing">true to release both managed and unmanaged resources; false to release only unmanaged resources.</param>
        </member>
        <member name="M:TimeSeriesFramework.Transport.DataPublisher.Initialize">
            <summary>
            Intializes <see cref="T:TimeSeriesFramework.Transport.DataPublisher"/>.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Transport.DataPublisher.QueueMeasurementsForProcessing(System.Collections.Generic.IEnumerable{TimeSeriesFramework.IMeasurement})">
            <summary>
            Queues a collection of measurements for processing to each <see cref="T:TimeSeriesFramework.Adapters.IActionAdapter"/> connected to this <see cref="T:TimeSeriesFramework.Transport.DataPublisher"/>.
            </summary>
            <param name="measurements">Measurements to queue for processing.</param>
        </member>
        <member name="M:TimeSeriesFramework.Transport.DataPublisher.Start">
            <summary>
            Establish <see cref="T:TimeSeriesFramework.Transport.DataPublisher"/> and start listening for client connections.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Transport.DataPublisher.Stop">
            <summary>
            Terminate <see cref="T:TimeSeriesFramework.Transport.DataPublisher"/> and stop listening for client connections.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Transport.DataPublisher.AssignParentCollection(TimeSeriesFramework.Adapters.IAdapterCollection)">
            <summary>
            Assigns the reference to the parent <see cref="T:TimeSeriesFramework.Adapters.IAdapterCollection"/> that will contain this <see cref="T:TimeSeriesFramework.Transport.DataPublisher"/>, if any.
            </summary>
            <param name="parent">Parent adapter collection.</param>
        </member>
        <member name="M:TimeSeriesFramework.Transport.DataPublisher.GetExternalEventHandle(System.String)">
            <summary>
            Gets a common wait handle for inter-adapter synchronization.
            </summary>
            <param name="name">Case-insensitive wait handle name.</param>
            <returns>A <see cref="T:System.Threading.AutoResetEvent"/> based wait handle associated with the given <paramref name="name"/>.</returns>
        </member>
        <member name="M:TimeSeriesFramework.Transport.DataPublisher.WaitForInitialize(System.Int32)">
            <summary>
            Blocks the <see cref="P:System.Threading.Thread.CurrentThread"/> until the adapter is <see cref="P:TimeSeriesFramework.Transport.DataPublisher.Initialized"/>.
            </summary>
            <param name="timeout">The number of milliseconds to wait.</param>
            <returns><c>true</c> if the initialization succeeds; otherwise, <c>false</c>.</returns>
        </member>
        <member name="M:TimeSeriesFramework.Transport.DataPublisher.GetShortStatus(System.Int32)">
            <summary>
            Gets a short one-line status of this <see cref="T:TimeSeriesFramework.Transport.DataPublisher"/>.
            </summary>
            <param name="maxLength">Maximum number of available characters for display.</param>
            <returns>A short one-line summary of the current status of the <see cref="T:TimeSeriesFramework.Transport.DataPublisher"/>.</returns>
        </member>
        <member name="M:TimeSeriesFramework.Transport.DataPublisher.EnumerateClients">
            <summary>
            Enumerates connected clients.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Transport.DataPublisher.RotateCipherKeys(System.Int32)">
            <summary>
            Rotates cipher keys for specified client connection.
            </summary>
            <param name="clientIndex">Enumerated index for client connection.</param>
        </member>
        <member name="M:TimeSeriesFramework.Transport.DataPublisher.GetSubscriberInfo(System.Int32)">
            <summary>
            Gets subscriber information for specified client connection.
            </summary>
            <param name="clientIndex">Enumerated index for client connection.</param>
        </member>
        <member name="M:TimeSeriesFramework.Transport.DataPublisher.GetSubscriberStatus(System.Guid)">
            <summary>
            Gets subscriber status for specified subscriber ID.
            </summary>
            <param name="subscriberID">Guid based subscriber ID for client connection.</param>
        </member>
        <member name="M:TimeSeriesFramework.Transport.DataPublisher.UpdateSignalIndexCache(System.Guid,TimeSeriesFramework.Transport.SignalIndexCache,TimeSeriesFramework.MeasurementKey[])">
            <summary>
            Updates signal index cache based on input measurement keys.
            </summary>
            <param name="clientID">Client ID of connection over which to update signal index cache.</param>
            <param name="signalIndexCache">New signal index cache.</param>
            <param name="inputMeasurementKeys">Subscribed measurement keys.</param>
        </member>
        <member name="M:TimeSeriesFramework.Transport.DataPublisher.SubscriberHasRights(System.Guid,System.Guid)">
            <summary>
            Determines if subscriber has rights to specified <paramref name="signalID"/>.
            </summary>
            <param name="subscriberID"><see cref="T:System.Guid"/> based subscriber ID.</param>
            <param name="signalID"><see cref="T:System.Guid"/> signal ID to lookup.</param>
            <returns><c>true</c> if subscriber has rights to specified <see cref="T:TimeSeriesFramework.MeasurementKey"/>; otherwise <c>false</c>.</returns>
        </member>
        <member name="M:TimeSeriesFramework.Transport.DataPublisher.SubscriberHasRights(System.Guid,TimeSeriesFramework.MeasurementKey,System.Guid@)">
            <summary>
            Determines if subscriber has rights to specified <see cref="T:TimeSeriesFramework.MeasurementKey"/>.
            </summary>
            <param name="subscriberID"><see cref="T:System.Guid"/> based subscriber ID.</param>
            <param name="key"><see cref="T:TimeSeriesFramework.MeasurementKey"/> to lookup.</param>
            <param name="signalID"><see cref="T:System.Guid"/> signal ID if found; otherwise an empty Guid.</param>
            <returns><c>true</c> if subscriber has rights to specified <see cref="T:TimeSeriesFramework.MeasurementKey"/>; otherwise <c>false</c>.</returns>
        </member>
        <member name="M:TimeSeriesFramework.Transport.DataPublisher.LookupSignalID(TimeSeriesFramework.MeasurementKey)">
            <summary>
            Looks up <see cref="T:System.Guid"/> signal ID for given <see cref="T:TimeSeriesFramework.MeasurementKey"/>.
            </summary>
            <param name="key"><see cref="T:TimeSeriesFramework.MeasurementKey"/> to lookup.</param>
            <returns><see cref="T:System.Guid"/> signal ID if found; otherwise an empty Guid.</returns>
        </member>
        <member name="M:TimeSeriesFramework.Transport.DataPublisher.GetClientEncoding(System.Guid)">
            <summary>
            Gets the text encoding associated with a particular client.
            </summary>
            <param name="clientID">ID of client.</param>
            <returns>Text encoding associated with a particular client.</returns>
        </member>
        <member name="M:TimeSeriesFramework.Transport.DataPublisher.SendDataStartTime(System.Guid,TVA.Ticks)">
            <summary>
            Sends the start time of the first measurement in a connection transmission.
            </summary>
            <param name="clientID">ID of client to send response.</param>
            <param name="startTime">Start time, in <see cref="T:TVA.Ticks"/>, of first measurement transmitted.</param>
        </member>
        <member name="M:TimeSeriesFramework.Transport.DataPublisher.SendClientResponse(System.Guid,TimeSeriesFramework.Transport.ServerResponse,TimeSeriesFramework.Transport.ServerCommand)">
            <summary>
            Sends response back to specified client.
            </summary>
            <param name="clientID">ID of client to send response.</param>
            <param name="response">Server response.</param>
            <param name="command">In response to command.</param>
            <returns><c>true</c> if send was successful; otherwise <c>false</c>.</returns>
        </member>
        <member name="M:TimeSeriesFramework.Transport.DataPublisher.SendClientResponse(System.Guid,TimeSeriesFramework.Transport.ServerResponse,TimeSeriesFramework.Transport.ServerCommand,System.String)">
            <summary>
            Sends response back to specified client with a message.
            </summary>
            <param name="clientID">ID of client to send response.</param>
            <param name="response">Server response.</param>
            <param name="command">In response to command.</param>
            <param name="status">Status message to return.</param>
            <returns><c>true</c> if send was successful; otherwise <c>false</c>.</returns>
        </member>
        <member name="M:TimeSeriesFramework.Transport.DataPublisher.SendClientResponse(System.Guid,TimeSeriesFramework.Transport.ServerResponse,TimeSeriesFramework.Transport.ServerCommand,System.String,System.Object[])">
            <summary>
            Sends response back to specified client with a formatted message.
            </summary>
            <param name="clientID">ID of client to send response.</param>
            <param name="response">Server response.</param>
            <param name="command">In response to command.</param>
            <param name="formattedStatus">Formatted status message to return.</param>
            <param name="args">Arguments for <paramref name="formattedStatus"/>.</param>
            <returns><c>true</c> if send was successful; otherwise <c>false</c>.</returns>
        </member>
        <member name="M:TimeSeriesFramework.Transport.DataPublisher.SendClientResponse(System.Guid,TimeSeriesFramework.Transport.ServerResponse,TimeSeriesFramework.Transport.ServerCommand,System.Byte[])">
            <summary>
            Sends response back to specified client with attached data.
            </summary>
            <param name="clientID">ID of client to send response.</param>
            <param name="response">Server response.</param>
            <param name="command">In response to command.</param>
            <param name="data">Data to return to client; null if none.</param>
            <returns><c>true</c> if send was successful; otherwise <c>false</c>.</returns>
        </member>
        <member name="M:TimeSeriesFramework.Transport.DataPublisher.OnProcessingComplete">
            <summary>
            Raises the <see cref="E:TimeSeriesFramework.Transport.DataPublisher.ProcessingComplete"/> event.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Transport.DataPublisher.OnClientConnected(System.Guid,System.String,System.String)">
            <summary>
            Raises the <see cref="E:TimeSeriesFramework.Transport.DataPublisher.ClientConnected"/> event.
            </summary>
            <param name="subscriberID">Subscriber <see cref="T:System.Guid"/> (normally <see cref="P:TimeSeriesFramework.Transport.ClientConnection.SubscriberID"/>).</param>
            <param name="connectionID">Connection identification (normally <see cref="P:TimeSeriesFramework.Transport.ClientConnection.ConnectionID"/>).</param>
            <param name="subscriberInfo">Subscriber information (normally <see cref="P:TimeSeriesFramework.Transport.ClientConnection.SubscriberInfo"/>).</param>
        </member>
        <member name="E:TimeSeriesFramework.Transport.DataPublisher.ClientConnected">
            <summary>
            Indicates that a new client has connected to the publisher.
            </summary>
            <remarks>
            <see cref="F:TVA.EventArgs`3.Argument1"/> is the <see cref="T:System.Guid"/> based subscriber ID.<br/>
            <see cref="F:TVA.EventArgs`3.Argument2"/> is the connection identification (e.g., IP and DNS name, if available).<br/>
            <see cref="F:TVA.EventArgs`3.Argument3"/> is the subscriber information as reported by the client.
            </remarks>
        </member>
        <member name="E:TimeSeriesFramework.Transport.DataPublisher.ProcessingComplete">
            <summary>
            Indicates to the host that processing for an input adapter (via temporal session) has completed.
            </summary>
            <remarks>
            This event is expected to only be raised when an input adapter has been designed to process
            a finite amount of data, e.g., reading a historical range of data during temporal procesing.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.Transport.DataPublisher.RequireAuthentication">
            <summary>
            Gets or sets flag that determines if <see cref="T:TimeSeriesFramework.Transport.DataPublisher"/> should require subscribers to authenticate before making data requests.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Transport.DataPublisher.EncryptPayload">
            <summary>
            Gets or sets flag that determines whether data sent over the data channel should be encrypted.
            </summary>
            <remarks>
            This value is only relevant if <see cref="P:TimeSeriesFramework.Transport.DataPublisher.RequireAuthentication"/> is true.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.Transport.DataPublisher.SharedDatabase">
            <summary>
            Gets or sets flag that indicates whether this publisher is publishing
            data that this node subscribed to from another node in a shared database.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Transport.DataPublisher.AllowSynchronizedSubscription">
            <summary>
            Gets or sets flag that indicates if this publisher will allow synchronized subscriptions.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Transport.DataPublisher.UseBaseTimeOffsets">
            <summary>
            Gets or sets flag that determines whether to use base time offsets to decrease the size of compact measurements.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Transport.DataPublisher.CipherKeyRotationPeriod">
            <summary>
            Gets or sets the cipher key rotation period.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Transport.DataPublisher.Status">
            <summary>
            Gets the status of this <see cref="T:TimeSeriesFramework.Transport.DataPublisher"/>.
            </summary>
            <remarks>
            Derived classes should provide current status information about the adapter for display purposes.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.Transport.DataPublisher.Name">
            <summary>
            Gets or sets the name of this <see cref="T:TimeSeriesFramework.Transport.DataPublisher"/>.
            </summary>
            <remarks>
            The assigned name is used as the settings category when persisting the TCP server settings.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.Transport.DataPublisher.MetadataTables">
            <summary>
            Gets or sets comma seperated list of tables to include in meta-data exchange.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Transport.DataPublisher.ClientConnections">
            <summary>
            Gets dictionary of connected clients.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Transport.DataPublisher.CommandChannel">
            <summary>
            Gets or sets reference to <see cref="T:TVA.Communication.TcpServer"/> command channel, attaching and/or detaching to events as needed.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Transport.DataPublisher.Initialized">
            <summary>
            Gets or sets flag indicating if the adapter has been initialized successfully.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Transport.DataPublisher.IsConnected">
            <summary>
            Gets flag indicating if publisher is connected and listening.
            </summary>
        </member>
        <member name="T:TimeSeriesFramework.Transport.DataSubscriber">
            <summary>
            Represents a data subscribing client that will connect to a data publisher for a data subscription.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Transport.DataSubscriber.#ctor">
            <summary>
            Creates a new <see cref="T:TimeSeriesFramework.Transport.DataSubscriber"/>.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Transport.DataSubscriber.Dispose(System.Boolean)">
            <summary>
            Releases the unmanaged resources used by the <see cref="T:TimeSeriesFramework.Transport.DataSubscriber"/> object and optionally releases the managed resources.
            </summary>
            <param name="disposing">true to release both managed and unmanaged resources; false to release only unmanaged resources.</param>
        </member>
        <member name="M:TimeSeriesFramework.Transport.DataSubscriber.Initialize">
            <summary>
            Initializes <see cref="T:TimeSeriesFramework.Transport.DataSubscriber"/>.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Transport.DataSubscriber.Authenticate(System.String,System.String)">
            <summary>
            Authenticates subcriber to a data publisher.
            </summary>
            <param name="sharedSecret">Shared secret used to look up private crypto key and initialization vector.</param>
            <param name="authenticationID">Authentication ID that publisher will use to validate subscriber identity.</param>
            <returns><c>true</c> if authentication transmission was successful; otherwise <c>false</c>.</returns>
        </member>
        <member name="M:TimeSeriesFramework.Transport.DataSubscriber.Subscribe(TimeSeriesFramework.Transport.SubscriptionInfo)">
            <summary>
            Subscribes (or re-subscribes) to a data publisher for a set of data points.
            </summary>
            <param name="info">Configuration object that defines the subscription.</param>
            <returns><c>true</c> if subscribe transmission was successful; otherwise <c>false</c>.</returns>
        </member>
        <member name="M:TimeSeriesFramework.Transport.DataSubscriber.SynchronizedSubscribe(TimeSeriesFramework.Transport.SynchronizedSubscriptionInfo)">
            <summary>
            Subscribes (or re-subscribes) to a data publisher for a synchronized set of data points.
            </summary>
            <param name="info">Configuration object that defines the subscription.</param>
            <returns><c>true</c> if subscribe transmission was successful; otherwise <c>false</c>.</returns>
        </member>
        <member name="M:TimeSeriesFramework.Transport.DataSubscriber.UnsynchronizedSubscribe(TimeSeriesFramework.Transport.UnsynchronizedSubscriptionInfo)">
            <summary>
            Subscribes (or re-subscribes) to a data publisher for an unsynchronized set of data points.
            </summary>
            <param name="info">Configuration object that defines the subscription.</param>
            <returns><c>true</c> if subscribe transmission was successful; otherwise <c>false</c>.</returns>
        </member>
        <member name="M:TimeSeriesFramework.Transport.DataSubscriber.RemotelySynchronizedSubscribe(System.Boolean,System.Int32,System.Double,System.Double,System.String,System.String,System.Boolean,System.Boolean,System.Boolean,System.Int64,System.Boolean,TimeSeriesFramework.DownsamplingMethod,System.String,System.String,System.String,System.Int32,System.String,System.Int32)">
            <summary>
            Subscribes (or re-subscribes) to a data publisher for a remotely synchronized set of data points.
            </summary>
            <param name="compactFormat">Boolean value that determines if the compact measurement format should be used. Set to <c>false</c> for full fidelity measurement serialization; otherwise set to <c>true</c> for bandwidth conservation.</param>
            <param name="framesPerSecond">The desired number of data frames per second.</param>
            <param name="lagTime">Allowed past time deviation tolerance, in seconds (can be subsecond).</param>
            <param name="leadTime">Allowed future time deviation tolerance, in seconds (can be subsecond).</param>
            <param name="filterExpression">Filtering expression that defines the measurements that are being subscribed.</param>
            <param name="dataChannel">Desired UDP return data channel connection string to use for data packet transmission. Set to <c>null</c> to use TCP channel for data transmission.</param>
            <param name="useLocalClockAsRealTime">Boolean value that determines whether or not to use the local clock time as real-time.</param>
            <param name="ignoreBadTimestamps">Boolean value that determines if bad timestamps (as determined by measurement's timestamp quality) should be ignored when sorting measurements.</param>
            <param name="allowSortsByArrival"> Gets or sets flag that determines whether or not to allow incoming measurements with bad timestamps to be sorted by arrival time.</param>
            <param name="timeResolution">Gets or sets the maximum time resolution, in ticks, to use when sorting measurements by timestamps into their proper destination frame.</param>
            <param name="allowPreemptivePublishing">Gets or sets flag that allows system to preemptively publish frames assuming all expected measurements have arrived.</param>
            <param name="downsamplingMethod">Gets the total number of downsampled measurements processed by the concentrator.</param>
            <param name="startTime">Defines a relative or exact start time for the temporal constraint to use for historical playback.</param>
            <param name="stopTime">Defines a relative or exact stop time for the temporal constraint to use for historical playback.</param>
            <param name="constraintParameters">Defines any temporal parameters related to the constraint to use for historical playback.</param>
            <param name="processingInterval">Defines the desired processing interval milliseconds, i.e., historical play back speed, to use when temporal constraints are defined.</param>
            <param name="waitHandleNames">Comma separated list of wait handle names used to establish external event wait handles needed for inter-adapter synchronization.</param>
            <param name="waitHandleTimeout">Maximum wait time for external events, in milliseconds, before proceeding.</param>
            <returns><c>true</c> if subscribe transmission was successful; otherwise <c>false</c>.</returns>
            <remarks>
            <para>
            When the <paramref name="startTime"/> or <paramref name="stopTime"/> temporal processing contraints are defined (i.e., not <c>null</c>), this
            specifies the start and stop time over which the subscriber session will process data. Passing in <c>null</c> for the <paramref name="startTime"/>
            and <paramref name="stopTime"/> specifies the the subscriber session will process data in standard, i.e., real-time, operation.
            </para>
            <para>
            With the exception of the values of -1 and 0, the <paramref name="processingInterval"/> value specifies the desired historical playback data
            processing interval in milliseconds. This is basically a delay, or timer interval, overwhich to process data. Setting this value to -1 means
            to use the default processing interval while setting the value to 0 means to process data as fast as possible.
            </para>
            <para>
            The <paramref name="startTime"/> and <paramref name="stopTime"/> parameters can be specified in one of the
            following formats:
            <list type="table">
                <listheader>
                    <term>Time Format</term>
                    <description>Format Description</description>
                </listheader>
                <item>
                    <term>12-30-2000 23:59:59.033</term>
                    <description>Absolute date and time.</description>
                </item>
                <item>
                    <term>*</term>
                    <description>Evaluates to <see cref="P:System.DateTime.UtcNow"/>.</description>
                </item>
                <item>
                    <term>*-20s</term>
                    <description>Evaluates to 20 seconds before <see cref="P:System.DateTime.UtcNow"/>.</description>
                </item>
                <item>
                    <term>*-10m</term>
                    <description>Evaluates to 10 minutes before <see cref="P:System.DateTime.UtcNow"/>.</description>
                </item>
                <item>
                    <term>*-1h</term>
                    <description>Evaluates to 1 hour before <see cref="P:System.DateTime.UtcNow"/>.</description>
                </item>
                <item>
                    <term>*-1d</term>
                    <description>Evaluates to 1 day before <see cref="P:System.DateTime.UtcNow"/>.</description>
                </item>
            </list>
            </para>
            </remarks>
        </member>
        <member name="M:TimeSeriesFramework.Transport.DataSubscriber.LocallySynchronizedSubscribe(System.Boolean,System.Int32,System.Double,System.Double,System.String,System.String,System.Boolean,System.Boolean,System.Boolean,System.Int64,System.Boolean,TimeSeriesFramework.DownsamplingMethod,System.String,System.String,System.String,System.Int32,System.String,System.Int32)">
            <summary>
            Subscribes (or re-subscribes) to a data publisher for a locally synchronized set of data points.
            </summary>
            <param name="compactFormat">Boolean value that determines if the compact measurement format should be used. Set to <c>false</c> for full fidelity measurement serialization; otherwise set to <c>true</c> for bandwidth conservation.</param>
            <param name="framesPerSecond">The desired number of data frames per second.</param>
            <param name="lagTime">Allowed past time deviation tolerance, in seconds (can be subsecond).</param>
            <param name="leadTime">Allowed future time deviation tolerance, in seconds (can be subsecond).</param>
            <param name="filterExpression">Filtering expression that defines the measurements that are being subscribed.</param>
            <param name="dataChannel">Desired UDP return data channel connection string to use for data packet transmission. Set to <c>null</c> to use TCP channel for data transmission.</param>
            <param name="useLocalClockAsRealTime">Boolean value that determines whether or not to use the local clock time as real-time.</param>
            <param name="ignoreBadTimestamps">Boolean value that determines if bad timestamps (as determined by measurement's timestamp quality) should be ignored when sorting measurements.</param>
            <param name="allowSortsByArrival"> Gets or sets flag that determines whether or not to allow incoming measurements with bad timestamps to be sorted by arrival time.</param>
            <param name="timeResolution">Gets or sets the maximum time resolution, in ticks, to use when sorting measurements by timestamps into their proper destination frame.</param>
            <param name="allowPreemptivePublishing">Gets or sets flag that allows system to preemptively publish frames assuming all expected measurements have arrived.</param>
            <param name="downsamplingMethod">Gets the total number of downsampled measurements processed by the concentrator.</param>
            <param name="startTime">Defines a relative or exact start time for the temporal constraint to use for historical playback.</param>
            <param name="stopTime">Defines a relative or exact stop time for the temporal constraint to use for historical playback.</param>
            <param name="constraintParameters">Defines any temporal parameters related to the constraint to use for historical playback.</param>
            <param name="processingInterval">Defines the desired processing interval milliseconds, i.e., historical play back speed, to use when temporal constraints are defined.</param>
            <param name="waitHandleNames">Comma separated list of wait handle names used to establish external event wait handles needed for inter-adapter synchronization.</param>
            <param name="waitHandleTimeout">Maximum wait time for external events, in milliseconds, before proceeding.</param>
            <returns><c>true</c> if subscribe transmission was successful; otherwise <c>false</c>.</returns>
            <remarks>
            <para>
            When the <paramref name="startTime"/> or <paramref name="stopTime"/> temporal processing contraints are defined (i.e., not <c>null</c>), this
            specifies the start and stop time over which the subscriber session will process data. Passing in <c>null</c> for the <paramref name="startTime"/>
            and <paramref name="stopTime"/> specifies the the subscriber session will process data in standard, i.e., real-time, operation.
            </para>
            <para>
            With the exception of the values of -1 and 0, the <paramref name="processingInterval"/> value specifies the desired historical playback data
            processing interval in milliseconds. This is basically a delay, or timer interval, overwhich to process data. Setting this value to -1 means
            to use the default processing interval while setting the value to 0 means to process data as fast as possible.
            </para>
            <para>
            The <paramref name="startTime"/> and <paramref name="stopTime"/> parameters can be specified in one of the
            following formats:
            <list type="table">
                <listheader>
                    <term>Time Format</term>
                    <description>Format Description</description>
                </listheader>
                <item>
                    <term>12-30-2000 23:59:59.033</term>
                    <description>Absolute date and time.</description>
                </item>
                <item>
                    <term>*</term>
                    <description>Evaluates to <see cref="P:System.DateTime.UtcNow"/>.</description>
                </item>
                <item>
                    <term>*-20s</term>
                    <description>Evaluates to 20 seconds before <see cref="P:System.DateTime.UtcNow"/>.</description>
                </item>
                <item>
                    <term>*-10m</term>
                    <description>Evaluates to 10 minutes before <see cref="P:System.DateTime.UtcNow"/>.</description>
                </item>
                <item>
                    <term>*-1h</term>
                    <description>Evaluates to 1 hour before <see cref="P:System.DateTime.UtcNow"/>.</description>
                </item>
                <item>
                    <term>*-1d</term>
                    <description>Evaluates to 1 day before <see cref="P:System.DateTime.UtcNow"/>.</description>
                </item>
            </list>
            </para>
            </remarks>
        </member>
        <member name="M:TimeSeriesFramework.Transport.DataSubscriber.UnsynchronizedSubscribe(System.Boolean,System.Boolean,System.String,System.String,System.Boolean,System.Double,System.Double,System.Boolean,System.String,System.String,System.String,System.Int32,System.String,System.Int32)">
            <summary>
            Subscribes (or re-subscribes) to a data publisher for an unsynchronized set of data points.
            </summary>
            <param name="compactFormat">Boolean value that determines if the compact measurement format should be used. Set to <c>false</c> for full fidelity measurement serialization; otherwise set to <c>true</c> for bandwidth conservation.</param>
            <param name="throttled">Boolean value that determines if data should be throttled at a set transmission interval or sent on change.</param>
            <param name="filterExpression">Filtering expression that defines the measurements that are being subscribed.</param>
            <param name="dataChannel">Desired UDP return data channel connection string to use for data packet transmission. Set to <c>null</c> to use TCP channel for data transmission.</param>
            <param name="includeTime">Boolean value that determines if time is a necessary component in streaming data.</param>
            <param name="lagTime">When <paramref name="throttled"/> is <c>true</c>, defines the data transmission speed in seconds (can be subsecond).</param>
            <param name="leadTime">When <paramref name="throttled"/> is <c>true</c>, defines the allowed time deviation tolerance to real-time in seconds (can be subsecond).</param>
            <param name="useLocalClockAsRealTime">When <paramref name="throttled"/> is <c>true</c>, defines boolean value that determines whether or not to use the local clock time as real-time. Set to <c>false</c> to use latest received measurement timestamp as real-time.</param>
            <param name="startTime">Defines a relative or exact start time for the temporal constraint to use for historical playback.</param>
            <param name="stopTime">Defines a relative or exact stop time for the temporal constraint to use for historical playback.</param>
            <param name="constraintParameters">Defines any temporal parameters related to the constraint to use for historical playback.</param>
            <param name="processingInterval">Defines the desired processing interval milliseconds, i.e., historical play back speed, to use when temporal constraints are defined.</param>
            <param name="waitHandleNames">Comma separated list of wait handle names used to establish external event wait handles needed for inter-adapter synchronization.</param>
            <param name="waitHandleTimeout">Maximum wait time for external events, in milliseconds, before proceeding.</param>
            <returns><c>true</c> if subscribe transmission was successful; otherwise <c>false</c>.</returns>
            <remarks>
            <para>
            When the <paramref name="startTime"/> or <paramref name="stopTime"/> temporal processing contraints are defined (i.e., not <c>null</c>), this
            specifies the start and stop time over which the subscriber session will process data. Passing in <c>null</c> for the <paramref name="startTime"/>
            and <paramref name="stopTime"/> specifies the the subscriber session will process data in standard, i.e., real-time, operation.
            </para>
            <para>
            With the exception of the values of -1 and 0, the <paramref name="processingInterval"/> value specifies the desired historical playback data
            processing interval in milliseconds. This is basically a delay, or timer interval, overwhich to process data. Setting this value to -1 means
            to use the default processing interval while setting the value to 0 means to process data as fast as possible.
            </para>
            <para>
            The <paramref name="startTime"/> and <paramref name="stopTime"/> parameters can be specified in one of the
            following formats:
            <list type="table">
                <listheader>
                    <term>Time Format</term>
                    <description>Format Description</description>
                </listheader>
                <item>
                    <term>12-30-2000 23:59:59.033</term>
                    <description>Absolute date and time.</description>
                </item>
                <item>
                    <term>*</term>
                    <description>Evaluates to <see cref="P:System.DateTime.UtcNow"/>.</description>
                </item>
                <item>
                    <term>*-20s</term>
                    <description>Evaluates to 20 seconds before <see cref="P:System.DateTime.UtcNow"/>.</description>
                </item>
                <item>
                    <term>*-10m</term>
                    <description>Evaluates to 10 minutes before <see cref="P:System.DateTime.UtcNow"/>.</description>
                </item>
                <item>
                    <term>*-1h</term>
                    <description>Evaluates to 1 hour before <see cref="P:System.DateTime.UtcNow"/>.</description>
                </item>
                <item>
                    <term>*-1d</term>
                    <description>Evaluates to 1 day before <see cref="P:System.DateTime.UtcNow"/>.</description>
                </item>
            </list>
            </para>
            </remarks>
        </member>
        <member name="M:TimeSeriesFramework.Transport.DataSubscriber.Subscribe(System.Boolean,System.Boolean,System.String)">
            <summary>
            Subscribes (or re-subscribes) to a data publisher for a set of data points.
            </summary>
            <param name="remotelySynchronized">Boolean value that determines if subscription should be remotely synchronized - note that data publisher may not allow remote synchronization.</param>
            <param name="compactFormat">Boolean value that determines if the compact measurement format should be used. Set to <c>false</c> for full fidelity measurement serialization; otherwise set to <c>true</c> for bandwidth conservation.</param>
            <param name="connectionString">Connection string that defines required and optional parameters for the subscription.</param>
            <returns><c>true</c> if subscribe transmission was successful; otherwise <c>false</c>.</returns>
        </member>
        <member name="M:TimeSeriesFramework.Transport.DataSubscriber.Unsubscribe">
            <summary>
            Unsubscribes from a data publisher.
            </summary>
            <returns><c>true</c> if unsubscribe transmission was successful; otherwise <c>false</c>.</returns>
        </member>
        <member name="M:TimeSeriesFramework.Transport.DataSubscriber.GetAuthorizedSignalIDs">
            <summary>
            Returns the measurements signal IDs that were authorized after the last successful subscription request.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Transport.DataSubscriber.GetUnauthorizedSignalIDs">
            <summary>
            Returns the measurements signal IDs that were unauthorized after the last successful subscription request.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Transport.DataSubscriber.RefreshMetadata">
            <summary>
            Initiate a metadata refresh.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Transport.DataSubscriber.SendServerCommand(TimeSeriesFramework.Transport.ServerCommand,System.Byte[])">
            <summary>
            Sends a server command to the publisher connection.
            </summary>
            <param name="commandCode"><see cref="T:TimeSeriesFramework.Transport.ServerCommand"/> to send.</param>
            <param name="data">Command data to send.</param>
            <returns><c>true</c> if <paramref name="commandCode"/> transmission was successful; otherwise <c>false</c>.</returns>
        </member>
        <member name="M:TimeSeriesFramework.Transport.DataSubscriber.AttemptConnection">
            <summary>
            Attempts to connect to this <see cref="T:TimeSeriesFramework.Transport.DataSubscriber"/>.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Transport.DataSubscriber.AttemptDisconnection">
            <summary>
            Attempts to disconnect from this <see cref="T:TimeSeriesFramework.Transport.DataSubscriber"/>.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Transport.DataSubscriber.GetShortStatus(System.Int32)">
            <summary>
            Gets a short one-line status of this <see cref="T:TimeSeriesFramework.Transport.DataSubscriber"/>.
            </summary>
            <param name="maxLength">Maximum length of the status message.</param>
            <returns>Text of the status message.</returns>
        </member>
        <member name="M:TimeSeriesFramework.Transport.DataSubscriber.InterpretResponseMessage(System.Byte[],System.Int32,System.Int32)">
            <summary>
            Get message from string based response.
            </summary>
            <param name="buffer">Response buffer.</param>
            <param name="startIndex">Start index of response message.</param>
            <param name="length">Length of response message.</param>
            <returns>Decoded response string.</returns>
        </member>
        <member name="M:TimeSeriesFramework.Transport.DataSubscriber.SynchronizeMetadata(System.Object)">
            <summary>
            Handles auto-connection metadata synchronization to local system. 
            </summary>
            <param name="state"><see cref="T:System.Data.DataSet"/> metadata collection passed into state parameter.</param>
            <remarks>
            This function is normally called from thread pool since synchronization can take some time.
            </remarks>
        </member>
        <member name="M:TimeSeriesFramework.Transport.DataSubscriber.OnConnectionEstablished">
            <summary>
            Raises the <see cref="E:TimeSeriesFramework.Transport.DataSubscriber.ConnectionEstablished"/> event.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Transport.DataSubscriber.OnConnectionTerminated">
            <summary>
            Raises the <see cref="E:TimeSeriesFramework.Transport.DataSubscriber.ConnectionTerminated"/> event.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Transport.DataSubscriber.OnConnectionAuthenticated">
            <summary>
            Raises the <see cref="E:TimeSeriesFramework.Transport.DataSubscriber.ConnectionAuthenticated"/> event.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Transport.DataSubscriber.OnMetaDataReceived(System.Data.DataSet)">
            <summary>
            Raises the <see cref="E:TimeSeriesFramework.Transport.DataSubscriber.MetaDataReceived"/> event.
            </summary>
            <param name="metadata">Meta-data <see cref="T:System.Data.DataSet"/> instance to send to client subscription.</param>
        </member>
        <member name="M:TimeSeriesFramework.Transport.DataSubscriber.OnDataStartTime(TVA.Ticks)">
            <summary>
            Raises the <see cref="E:TimeSeriesFramework.Transport.DataSubscriber.DataStartTime"/> event.
            </summary>
            <param name="startTime">Start time, in <see cref="T:TVA.Ticks"/>, of first measurement transmitted.</param>
        </member>
        <member name="M:TimeSeriesFramework.Transport.DataSubscriber.OnProcessingComplete(System.String)">
            <summary>
            Raises the <see cref="E:TimeSeriesFramework.Transport.DataSubscriber.ProcessingComplete"/> event.
            </summary>
            <param name="source">Type name of adapter that sent the processing completed notification.</param>
        </member>
        <member name="M:TimeSeriesFramework.Transport.DataSubscriber.DisposeLocalConcentrator">
            <summary>
            Disposes of any previously defined local concentrator.
            </summary>
        </member>
        <member name="E:TimeSeriesFramework.Transport.DataSubscriber.ConnectionEstablished">
            <summary>
            Occurs when client connection to the data publication server is established.
            </summary>
        </member>
        <member name="E:TimeSeriesFramework.Transport.DataSubscriber.ConnectionTerminated">
            <summary>
            Occurs when client connection to the data publication server is terminated.
            </summary>
        </member>
        <member name="E:TimeSeriesFramework.Transport.DataSubscriber.ConnectionAuthenticated">
            <summary>
            Occurs when client connection to the data publication server has successfully authenticated.
            </summary>
        </member>
        <member name="E:TimeSeriesFramework.Transport.DataSubscriber.MetaDataReceived">
            <summary>
            Occurs when client receives requested meta-data transmitted by data publication server.
            </summary>
        </member>
        <member name="E:TimeSeriesFramework.Transport.DataSubscriber.DataStartTime">
            <summary>
            Occurs when first measurement is transmitted by data publication server.
            </summary>
        </member>
        <member name="E:TimeSeriesFramework.Transport.DataSubscriber.ProcessingComplete">
            <summary>
            Indicates that processing for an input adapter (via temporal session) has completed.
            </summary>
            <remarks>
            This event is expected to only be raised when an input adapter has been designed to process
            a finite amount of data, e.g., reading a historical range of data during temporal procesing.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.Transport.DataSubscriber.RequireAuthentication">
            <summary>
            Gets or sets flag that determines if <see cref="T:TimeSeriesFramework.Transport.DataPublisher"/> requires subscribers to authenticate before making data requests.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Transport.DataSubscriber.AutoConnect">
            <summary>
            Gets or sets flag that determines if <see cref="T:TimeSeriesFramework.Transport.DataSubscriber"/> should attempt to autoconnection to <see cref="T:TimeSeriesFramework.Transport.DataPublisher"/> using defined connection settings.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Transport.DataSubscriber.UseMillisecondResolution">
            <summary>
            Gets or sets flag that informs publisher if base time-offsets can use millisecond resolution to conserve bandwidth.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Transport.DataSubscriber.Authenticated">
            <summary>
            Gets flag that determines if this <see cref="T:TimeSeriesFramework.Transport.DataSubscriber"/> has successfully authenticated with the <see cref="T:TimeSeriesFramework.Transport.DataPublisher"/>.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Transport.DataSubscriber.TotalBytesReceived">
            <summary>
            Gets total data packet bytes received during this session.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Transport.DataSubscriber.DataLossInterval">
            <summary>
            Gets or sets data loss monitoring interval, in seconds. Set to zero to disable monitoring.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Transport.DataSubscriber.OperationalModes">
            <summary>
            Gets or sets a set of flags that define ways in
            which the subscriber and publisher communicate.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Transport.DataSubscriber.OperationalEncoding">
            <summary>
            Gets or sets the <see cref="P:TimeSeriesFramework.Transport.DataSubscriber.OperationalEncoding"/> used by the subscriber and publisher.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Transport.DataSubscriber.SupportsTemporalProcessing">
            <summary>
            Gets the flag indicating if this adapter supports temporal processing.
            </summary>
            <remarks>
            Although the data subscriber provisions support for temporal processing by receiving historical data from a remote source,
            the adapter opens sockets and does not need to be engaged within an actual temporal <see cref="T:TimeSeriesFramework.Adapters.IaonSession"/>, therefore
            this method returns <c>false</c> to make sure the adapter doesn't get instantiated within a temporal session.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.Transport.DataSubscriber.ProcessingInterval">
            <summary>
            Gets or sets the desired processing interval, in milliseconds, for the adapter.
            </summary>
            <remarks>
            With the exception of the values of -1 and 0, this value specifies the desired processing interval for data, i.e.,
            basically a delay, or timer interval, overwhich to process data. A value of -1 means to use the default processing
            interval while a value of 0 means to process data as fast as possible.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.Transport.DataSubscriber.Status">
            <summary>
            Gets the status of this <see cref="T:TimeSeriesFramework.Transport.DataSubscriber"/>.
            </summary>
            <remarks>
            Derived classes should provide current status information about the adapter for display purposes.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.Transport.DataSubscriber.UseAsyncConnect">
            <summary>
            Gets a flag that determines if this <see cref="T:TimeSeriesFramework.Transport.DataSubscriber"/> uses an asynchronous connection.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Transport.DataSubscriber.DataChannel">
            <summary>
            Gets or sets reference to <see cref="T:TVA.Communication.UdpClient"/> data channel, attaching and/or detaching to events as needed.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Transport.DataSubscriber.CommandChannel">
            <summary>
            Gets or sets reference to <see cref="T:TVA.Communication.TcpClient"/> command channel, attaching and/or detaching to events as needed.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Transport.DataSubscriber.LocalConcentrator.#ctor(TimeSeriesFramework.Transport.DataSubscriber)">
            <summary>
            Creates a new local concentrator.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Transport.DataSubscriber.LocalConcentrator.Dispose(System.Boolean)">
            <summary>
            Releases the unmanaged resources used by the <see cref="T:TimeSeriesFramework.Transport.DataSubscriber.LocalConcentrator"/> object and optionally releases the managed resources.
            </summary>
            <param name="disposing">true to release both managed and unmanaged resources; false to release only unmanaged resources.</param>
        </member>
        <member name="M:TimeSeriesFramework.Transport.DataSubscriber.LocalConcentrator.PublishFrame(TimeSeriesFramework.IFrame,System.Int32)">
            <summary>
            Publish <see cref="T:TimeSeriesFramework.IFrame"/> of time-aligned collection of <see cref="T:TimeSeriesFramework.IMeasurement"/> values that arrived within the
            concentrator's defined <see cref="P:TimeSeriesFramework.ConcentratorBase.LagTime"/>.
            </summary>
            <param name="frame"><see cref="T:TimeSeriesFramework.IFrame"/> of measurements with the same timestamp that arrived within <see cref="P:TimeSeriesFramework.ConcentratorBase.LagTime"/> that are ready for processing.</param>
            <param name="index">Index of <see cref="T:TimeSeriesFramework.IFrame"/> within a second ranging from zero to <c><see cref="P:TimeSeriesFramework.ConcentratorBase.FramesPerSecond"/> - 1</c>.</param>
        </member>
        <member name="T:TimeSeriesFramework.DebugHostBase">
            <summary>
            Windows form application used to host the time-series framework service.
            </summary>
        </member>
        <member name="F:TimeSeriesFramework.DebugHostBase.ServiceHost">
            <summary>
            Reference to instance of <see cref="T:TimeSeriesFramework.ServiceHostBase"/>.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.DebugHostBase.#ctor">
            <summary>
            Creates a new instance of the <see cref="T:TimeSeriesFramework.DebugHostBase"/> windows form.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.DebugHostBase.DebugHostLoading">
            <summary>
            Invoked when the debug host is loading. By default this launches the remote service client.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.DebugHostBase.DebugHostUnloading">
            <summary>
            Invoked when the debug host is unloading. By default this shuts down the remote service client.
            </summary>
        </member>
        <member name="F:TimeSeriesFramework.DebugHostBase.components">
            <summary>
            Required designer variable.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.DebugHostBase.Dispose(System.Boolean)">
            <summary>
            Clean up any resources being used.
            </summary>
            <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
        </member>
        <member name="M:TimeSeriesFramework.DebugHostBase.InitializeComponent">
            <summary>
            Required method for Designer support - do not modify
            the contents of this method with the code editor.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.DebugHostBase.ServiceClientName">
            <summary>
            Gets the executable name of the service client that can remotely access the time-series framework service.
            </summary>
        </member>
        <member name="T:TimeSeriesFramework.Transport.SerializableMeasurement">
            <summary>
            Represents a <see cref="T:TimeSeriesFramework.IMeasurement"/> that can be serialized.
            </summary>
            <remarks>
            This measurement implementation is serialized through <see cref="T:TVA.Parsing.ISupportBinaryImage"/>
            to allow complete control of binary format. All measurement properties are serialized
            at their full resolution and no attempt is made to optimize the binary image for
            purposes of size reduction.
            </remarks>
        </member>
        <member name="F:TimeSeriesFramework.Transport.SerializableMeasurement.FixedLength">
            <summary>
            Fixed byte length of a <see cref="T:TimeSeriesFramework.Transport.SerializableMeasurement"/>.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Transport.SerializableMeasurement.#ctor(System.Text.Encoding)">
            <summary>
            Creates a new <see cref="T:TimeSeriesFramework.Transport.SerializableMeasurement"/>.
            </summary>
            <param name="encoding">Character encoding used to convert strings to binary.</param>
        </member>
        <member name="M:TimeSeriesFramework.Transport.SerializableMeasurement.#ctor(TimeSeriesFramework.IMeasurement,System.Text.Encoding)">
            <summary>
            Creates a new <see cref="T:TimeSeriesFramework.Transport.SerializableMeasurement"/> from an existing <see cref="T:TimeSeriesFramework.IMeasurement"/> value.
            </summary>
            <param name="measurement">Source <see cref="T:TimeSeriesFramework.IMeasurement"/> value.</param>
            <param name="encoding">Character encoding used to convert strings to binary.</param>
        </member>
        <member name="M:TimeSeriesFramework.Transport.SerializableMeasurement.ParseBinaryImage(System.Byte[],System.Int32,System.Int32)">
            <summary>
            Initializes <see cref="T:TimeSeriesFramework.Transport.SerializableMeasurement"/> from the specified binary image.
            </summary>
            <param name="buffer">Buffer containing binary image to parse.</param>
            <param name="startIndex">0-based starting index in the <paramref name="buffer"/> to start parsing.</param>
            <param name="length">Valid number of bytes within <paramref name="buffer"/> from <paramref name="startIndex"/>.</param>
            <returns>The number of bytes used for initialization in the <paramref name="buffer"/> (i.e., the number of bytes parsed).</returns>
            <exception cref="T:System.InvalidOperationException">Not enough buffer available to deserialize measurement.</exception>
            <exception cref="T:System.ArgumentNullException"><paramref name="buffer"/> is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">
            <paramref name="startIndex"/> or <paramref name="length"/> is less than 0 -or- 
            <paramref name="startIndex"/> and <paramref name="length"/> will exceed <paramref name="buffer"/> length.
            </exception>
        </member>
        <member name="M:TimeSeriesFramework.Transport.SerializableMeasurement.GenerateBinaryImage(System.Byte[],System.Int32)">
            <summary>
            Generates binary image of the <see cref="T:TimeSeriesFramework.Transport.SerializableMeasurement"/> and copies it into the given buffer, for <see cref="P:TVA.Parsing.ISupportBinaryImage.BinaryLength"/> bytes.
            </summary>
            <param name="buffer">Buffer used to hold generated binary image of the source object.</param>
            <param name="startIndex">0-based starting index in the <paramref name="buffer"/> to start writing.</param>
            <returns>The number of bytes written to the <paramref name="buffer"/>.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="buffer"/> is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">
            <paramref name="startIndex"/> or <see cref="P:TVA.Parsing.ISupportBinaryImage.BinaryLength"/> is less than 0 -or- 
            <paramref name="startIndex"/> and <see cref="P:TVA.Parsing.ISupportBinaryImage.BinaryLength"/> will exceed <paramref name="buffer"/> length.
            </exception>
            <remarks>
            <para>
            Field:      Bytes:   <br/>
            ---------   ---------<br/>
             Key ID         4    <br/>
            SourceLen       4    <br/>
             Source     SourceLen<br/>
            Signal ID      16    <br/>
             TagLen         4    <br/>
              Tag        TagLen  <br/>
              Value         8    <br/>
              Adder         8    <br/>
            Multipler       8    <br/>
              Ticks         8    <br/>
              Flags         4    <br/>
            </para>
            <para>
            Constant Length = 64<br/>
            Variable Length = SourceLen + TagLen
            </para>
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.Transport.SerializableMeasurement.BinaryLength">
            <summary>
            Gets the length of the <see cref="T:TimeSeriesFramework.Transport.SerializableMeasurement"/>.
            </summary>
        </member>
        <member name="T:TimeSeriesFramework.ServiceClientBase">
            <summary>
            Represents a client that can remotely access the time-series framework service host.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.ServiceClientBase.#ctor">
            <summary>
            Creates a new instance of the <see cref="T:TimeSeriesFramework.ServiceClientBase"/> class.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.ServiceClientBase.Start(System.String[])">
            <summary>
            Handles service start event.
            </summary>
            <param name="args">Service start arguments.</param>
        </member>
        <member name="M:TimeSeriesFramework.ServiceClientBase.ClientHelper_ReceivedServiceUpdate(System.Object,TVA.EventArgs{TVA.UpdateType,System.String})">
            <summary>
            Client helper service update reception handler.
            </summary>
            <param name="sender">Sending object.</param>
            <param name="e">Event argument containing update type and associated message data.</param>
        </member>
        <member name="M:TimeSeriesFramework.ServiceClientBase.ClientHelper_ReceivedServiceResponse(System.Object,TVA.EventArgs{TVA.ServiceProcess.ServiceResponse})">
            <summary>
            Client helper service response reception handler.
            </summary>
            <param name="sender">Sending object.</param>
            <param name="e">Event argument containing the service response.</param>
        </member>
        <member name="M:TimeSeriesFramework.ServiceClientBase.ClientHelper_TelnetSessionEstablished(System.Object,System.EventArgs)">
            <summary>
            Client helper telnet session established handler.
            </summary>
            <param name="sender">Sending object.</param>
            <param name="e">Event arguments, if any.</param>
        </member>
        <member name="M:TimeSeriesFramework.ServiceClientBase.ClientHelper_TelnetSessionTerminated(System.Object,System.EventArgs)">
            <summary>
            Client helper telnet session terminated handler.
            </summary>
            <param name="sender">Sending object.</param>
            <param name="e">Event arguments, if any.</param>
        </member>
        <member name="F:TimeSeriesFramework.ServiceClientBase.components">
            <summary>
            Required designer variable.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.ServiceClientBase.Dispose(System.Boolean)">
            <summary> 
            Clean up any resources being used.
            </summary>
            <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
        </member>
        <member name="M:TimeSeriesFramework.ServiceClientBase.InitializeComponent">
            <summary>
            Required method for Designer support - do not modify
            the contents of this method with the code editor.
            </summary>
        </member>
        <member name="T:TimeSeriesFramework.ConfigurationType">
            <summary>
            Configuration data source type enumeration.
            </summary>
        </member>
        <member name="F:TimeSeriesFramework.ConfigurationType.Database">
            <summary>
            Configuration source is a database.
            </summary>
        </member>
        <member name="F:TimeSeriesFramework.ConfigurationType.WebService">
            <summary>
            Configuration source is a webservice.
            </summary>
        </member>
        <member name="F:TimeSeriesFramework.ConfigurationType.XmlFile">
            <summary>
            Configuration source is a XML file.
            </summary>
        </member>
        <member name="T:TimeSeriesFramework.DataOperationFunction">
            <summary>
            Defines a method signature for a bootstrap data source operation.
            </summary>
            <param name="connection">Connection to database.</param>
            <param name="adapterType">Adapter type for database connection.</param>
            <param name="nodeIDQueryString">Formatted node ID guid query string.</param>
            <param name="arguments">Optional data operation arguments.</param>
            <param name="statusMessage">Reference to host status message function.</param>
            <param name="processException">Reference to host process exception function.</param>
        </member>
        <member name="T:TimeSeriesFramework.ServiceHostBase">
            <summary>
            Represents the time-series framework service host.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.ServiceHostBase.#ctor">
            <summary>
            Creates a new <see cref="T:TimeSeriesFramework.ServiceHostBase"/>.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.ServiceHostBase.#ctor(System.ComponentModel.IContainer)">
            <summary>
            Creates a new <see cref="T:TimeSeriesFramework.ServiceHostBase"/> from specified parameters.
            </summary>
            <param name="container">Service host <see cref="T:System.ComponentModel.IContainer"/>.</param>
        </member>
        <member name="M:TimeSeriesFramework.ServiceHostBase.ServiceStartingHandler(System.Object,TVA.EventArgs{System.String[]})">
            <summary>
            Event handler for service starting operations.
            </summary>
            <param name="sender">Event source.</param>
            <param name="e">Event arguments containing command line arguments passed into service at startup.</param>
            <remarks>
            Time-series framework uses this handler to load settings from configuration file as service is starting.
            </remarks>
        </member>
        <member name="M:TimeSeriesFramework.ServiceHostBase.ServiceStartedHandler(System.Object,System.EventArgs)">
            <summary>
            Event handler for service started operation.
            </summary>
            <param name="sender">Event source.</param>
            <param name="e">Event arguments.</param>
            <remarks>
            Time-series framework uses this handler to handle initialization of system objects.
            </remarks>
        </member>
        <member name="M:TimeSeriesFramework.ServiceHostBase.ServiceStoppingHandler(System.Object,System.EventArgs)">
            <summary>
            Event handler for service stopping operation.
            </summary>
            <param name="sender">Event source.</param>
            <param name="e">Event arguments.</param>
            <remarks>
            Time-series framework uses this handler to un-wire events and dispose of system objects.
            </remarks>
        </member>
        <member name="M:TimeSeriesFramework.ServiceHostBase.CacheCurrentConfiguration(System.Data.DataSet)">
            <summary>
            Caches the current system configuration.
            </summary>
            <param name="configuration">Configuration <see cref="T:System.Data.DataSet"/>.</param>
            <remarks>
            This method allows caching of the current system configuration so it can be used if primary configuration source is unavailable.
            </remarks>
        </member>
        <member name="M:TimeSeriesFramework.ServiceHostBase.m_iaonSession_StatusMessage(System.Object,TVA.EventArgs{System.String,TVA.UpdateType})">
            <summary>
            Event handler for reporting status messages.
            </summary>
            <param name="sender">Event source of the status message.</param>
            <param name="e">Event arguments containing the status message and its type to report.</param>
            <remarks>
            The time-series framework <see cref="T:TimeSeriesFramework.Adapters.IaonSession"/> uses this event to report adapter status messages (e.g., to a log file or console window).
            </remarks>
        </member>
        <member name="M:TimeSeriesFramework.ServiceHostBase.m_iaonSession_ProcessException(System.Object,TVA.EventArgs{System.Exception})">
            <summary>
            Event handler for processing reported exceptions.
            </summary>
            <param name="sender">Event source of the exception.</param>
            <param name="e">Event arguments containing the exception to report.</param>
            <remarks>
            The time-series framework <see cref="T:TimeSeriesFramework.Adapters.IaonSession"/> uses this event to report exceptions.
            </remarks>
        </member>
        <member name="M:TimeSeriesFramework.ServiceHostBase.LogExceptionHandler(System.Object,TVA.EventArgs{System.Exception})">
            <summary>
            Event handler for processing exceptions encountered while writing entries to a log file.
            </summary>
            <param name="sender">Event source of the exception.</param>
            <param name="e">Event arguments containing the exception to report.</param>
        </member>
        <member name="M:TimeSeriesFramework.ServiceHostBase.HealthMonitorProcessHandler(System.String,System.Object[])">
            <summary>
            Event handler for scheduled health monitor display.
            </summary>
            <param name="name">Scheduled event name.</param>
            <param name="parameters">Scheduled event parameters.</param>
        </member>
        <member name="M:TimeSeriesFramework.ServiceHostBase.StatusExportProcessHandler(System.String,System.Object[])">
            <summary>
            Event handler for scheduled adapter status export.
            </summary>
            <param name="name">Scheduled event name.</param>
            <param name="parameters">Scheduled event parameters.</param>
        </member>
        <member name="M:TimeSeriesFramework.ServiceHostBase.GetRequestedCollection(TVA.ServiceProcess.ClientRequestInfo)">
            <summary>
            Gets requested <see cref="T:TimeSeriesFramework.Adapters.IAdapterCollection"/>.
            </summary>
            <param name="requestInfo"><see cref="T:TVA.ServiceProcess.ClientRequestInfo"/> instance containing the client request.</param>
            <returns>Requested <see cref="T:TimeSeriesFramework.Adapters.IAdapterCollection"/>.</returns>
        </member>
        <member name="M:TimeSeriesFramework.ServiceHostBase.GetRequestedAdapter(TVA.ServiceProcess.ClientRequestInfo)">
            <summary>
            Gets requested <see cref="T:TimeSeriesFramework.Adapters.IAdapter"/>.
            </summary>
            <param name="requestInfo"><see cref="T:TVA.ServiceProcess.ClientRequestInfo"/> instance containing the client request.</param>
            <returns>Requested <see cref="T:TimeSeriesFramework.Adapters.IAdapter"/>.</returns>
        </member>
        <member name="M:TimeSeriesFramework.ServiceHostBase.GetRequestedAdapter(TVA.ServiceProcess.ClientRequestInfo,TimeSeriesFramework.Adapters.IAdapterCollection@)">
            <summary>
            Gets requested <see cref="T:TimeSeriesFramework.Adapters.IAdapter"/> and its containing <see cref="T:TimeSeriesFramework.Adapters.IAdapterCollection"/>.
            </summary>
            <param name="requestInfo"><see cref="T:TVA.ServiceProcess.ClientRequestInfo"/> instance containing the client request.</param>
            <param name="collection">Containing <see cref="T:TimeSeriesFramework.Adapters.IAdapterCollection"/> for <see cref="T:TimeSeriesFramework.Adapters.IAdapter"/>.</param>
            <returns>Requested <see cref="T:TimeSeriesFramework.Adapters.IAdapter"/>.</returns>
        </member>
        <member name="M:TimeSeriesFramework.ServiceHostBase.ListRequestHandler(TVA.ServiceProcess.ClientRequestInfo)">
            <summary>
            Displays status of specified adapter or collection.
            </summary>
            <param name="requestInfo"><see cref="T:TVA.ServiceProcess.ClientRequestInfo"/> instance containing the client request.</param>
        </member>
        <member name="M:TimeSeriesFramework.ServiceHostBase.StartRequestHandler(TVA.ServiceProcess.ClientRequestInfo)">
            <summary>
            Starts specified adapter.
            </summary>
            <param name="requestInfo"><see cref="T:TVA.ServiceProcess.ClientRequestInfo"/> instance containing the client request.</param>
        </member>
        <member name="M:TimeSeriesFramework.ServiceHostBase.StopRequestHandler(TVA.ServiceProcess.ClientRequestInfo)">
            <summary>
            Stops specified adapter.
            </summary>
            <param name="requestInfo"><see cref="T:TVA.ServiceProcess.ClientRequestInfo"/> instance containing the client request.</param>
        </member>
        <member name="M:TimeSeriesFramework.ServiceHostBase.ActionRequestHandler(TVA.ServiceProcess.ClientRequestInfo,System.Action{TimeSeriesFramework.Adapters.IAdapter})">
            <summary>
            Generic adapter request handler.
            </summary>
            <param name="requestInfo"><see cref="T:TVA.ServiceProcess.ClientRequestInfo"/> instance containing the client request.</param>
            <param name="adapterAction">Action to perform on <see cref="T:TimeSeriesFramework.Adapters.IAdapter"/>.</param>
        </member>
        <member name="M:TimeSeriesFramework.ServiceHostBase.InvokeRequestHandler(TVA.ServiceProcess.ClientRequestInfo)">
            <summary>
            Invokes specified adapter command.
            </summary>
            <param name="requestInfo"><see cref="T:TVA.ServiceProcess.ClientRequestInfo"/> instance containing the client request.</param>
        </member>
        <member name="M:TimeSeriesFramework.ServiceHostBase.ListCommandsRequestHandler(TVA.ServiceProcess.ClientRequestInfo)">
            <summary>
            Lists possible commands of specified adapter.
            </summary>
            <param name="requestInfo"><see cref="T:TVA.ServiceProcess.ClientRequestInfo"/> instance containing the client request.</param>
        </member>
        <member name="M:TimeSeriesFramework.ServiceHostBase.InitializeRequestHandler(TVA.ServiceProcess.ClientRequestInfo)">
            <summary>
            Performs initialization or reinitialization of specified adapter or collection.
            </summary>
            <param name="requestInfo"><see cref="T:TVA.ServiceProcess.ClientRequestInfo"/> instance containing the client request.</param>
        </member>
        <member name="M:TimeSeriesFramework.ServiceHostBase.TemporalSupportRequestHandler(TVA.ServiceProcess.ClientRequestInfo)">
            <summary>
            Determines support for temporal processing from existing adapters.
            </summary>
            <param name="requestInfo"><see cref="T:TVA.ServiceProcess.ClientRequestInfo"/> instance containing the client request.</param>
        </member>
        <member name="M:TimeSeriesFramework.ServiceHostBase.RefreshRoutesRequestHandler(TVA.ServiceProcess.ClientRequestInfo)">
            <summary>
            Recalculates routing tables.
            </summary>
            <param name="requestInfo"><see cref="T:TVA.ServiceProcess.ClientRequestInfo"/> instance containing the client request.</param>
        </member>
        <member name="M:TimeSeriesFramework.ServiceHostBase.ReloadConfigRequstHandler(TVA.ServiceProcess.ClientRequestInfo)">
            <summary>
            Manually reloads system configuration.
            </summary>
            <param name="requestInfo"><see cref="T:TVA.ServiceProcess.ClientRequestInfo"/> instance containing the client request.</param>
        </member>
        <member name="M:TimeSeriesFramework.ServiceHostBase.UpdateConfigFileRequestHandler(TVA.ServiceProcess.ClientRequestInfo)">
            <summary>
            Updates an option in the configuration file.
            </summary>
            <param name="requestInfo"><see cref="T:TVA.ServiceProcess.ClientRequestInfo"/> instance containing the client request.</param>
        </member>
        <member name="M:TimeSeriesFramework.ServiceHostBase.AuthenticateRequestHandler(TVA.ServiceProcess.ClientRequestInfo)">
            <summary>
            Attempts to authenticate or reauthenticate to network shares.
            </summary>
            <param name="requestInfo"><see cref="T:TVA.ServiceProcess.ClientRequestInfo"/> instance containing the client request.</param>
        </member>
        <member name="M:TimeSeriesFramework.ServiceHostBase.RestartServiceHandler(TVA.ServiceProcess.ClientRequestInfo)">
            <summary>
            Attempts to restart the hose service.
            </summary>
            <param name="requestInfo"><see cref="T:TVA.ServiceProcess.ClientRequestInfo"/> instance containing the client request.</param>
        </member>
        <member name="M:TimeSeriesFramework.ServiceHostBase.SendResponse(TVA.ServiceProcess.ClientRequestInfo,System.Boolean)">
            <summary>
            Sends an actionable response to client.
            </summary>
            <param name="requestInfo"><see cref="T:TVA.ServiceProcess.ClientRequestInfo"/> instance containing the client request.</param>
            <param name="success">Flag that determines if this response to client request was a success.</param>
        </member>
        <member name="M:TimeSeriesFramework.ServiceHostBase.SendResponse(TVA.ServiceProcess.ClientRequestInfo,System.Boolean,System.String,System.Object[])">
            <summary>
            Sends an actionable response to client with a formatted message.
            </summary>
            <param name="requestInfo"><see cref="T:TVA.ServiceProcess.ClientRequestInfo"/> instance containing the client request.</param>
            <param name="success">Flag that determines if this response to client request was a success.</param>
            <param name="status">Formatted status message to send with response.</param>
            <param name="args">Arguments of the formatted status message.</param>
        </member>
        <member name="M:TimeSeriesFramework.ServiceHostBase.SendResponseWithAttachment(TVA.ServiceProcess.ClientRequestInfo,System.Boolean,System.Object,System.String,System.Object[])">
            <summary>
            Sends an actionable response to client with a formatted message and attachment.
            </summary>
            <param name="requestInfo"><see cref="T:TVA.ServiceProcess.ClientRequestInfo"/> instance containing the client request.</param>
            <param name="success">Flag that determines if this response to client request was a success.</param>
            <param name="attachment">Attachment to send with response.</param>
            <param name="status">Formatted status message to send with response.</param>
            <param name="args">Arguments of the formatted status message.</param>
        </member>
        <member name="M:TimeSeriesFramework.ServiceHostBase.DisplayResponseMessage(TVA.ServiceProcess.ClientRequestInfo,System.String,System.Object[])">
            <summary>
            Displays a response message to client requestor.
            </summary>
            <param name="requestInfo"><see cref="T:TVA.ServiceProcess.ClientRequestInfo"/> instance containing the client request.</param>
            <param name="status">Formatted status message to send to client.</param>
            <param name="args">Arguments of the formatted status message.</param>
        </member>
        <member name="M:TimeSeriesFramework.ServiceHostBase.DisplayStatusMessage(System.String,TVA.UpdateType)">
            <summary>
            Displays a broadcast message to all subscribed clients.
            </summary>
            <param name="status">Status message to send to all clients.</param>
            <param name="type"><see cref="T:TVA.UpdateType"/> of message to send.</param>
        </member>
        <member name="M:TimeSeriesFramework.ServiceHostBase.DisplayStatusMessage(System.String,TVA.UpdateType,System.Object[])">
            <summary>
            Displays a broadcast message to all subscribed clients.
            </summary>
            <param name="status">Formatted status message to send to all clients.</param>
            <param name="type"><see cref="T:TVA.UpdateType"/> of message to send.</param>
            <param name="args">Arguments of the formatted status message.</param>
        </member>
        <member name="M:TimeSeriesFramework.ServiceHostBase.OnStart(System.String[])">
            <summary>
            Handles service start event.
            </summary>
            <param name="args">Service startup arguments, if any.</param>
        </member>
        <member name="M:TimeSeriesFramework.ServiceHostBase.OnStop">
            <summary>
            Handles service stop event.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.ServiceHostBase.OnPause">
            <summary>
            Handles service pause event.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.ServiceHostBase.OnContinue">
            <summary>
            Handles service continue event.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.ServiceHostBase.OnShutdown">
            <summary>
            Handles service shut down event.
            </summary>
        </member>
        <member name="F:TimeSeriesFramework.ServiceHostBase.components">
            <summary> 
            Required designer variable.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.ServiceHostBase.Dispose(System.Boolean)">
            <summary>
            Clean up any resources being used.
            </summary>
            <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
        </member>
        <member name="M:TimeSeriesFramework.ServiceHostBase.InitializeComponent">
            <summary> 
            Required method for Designer support - do not modify 
            the contents of this method with the code editor.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.ServiceHostBase.ConsoleApplicationName">
            <summary>
            Gets the related remote console application name.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.ServiceHostBase.ServiceHelper">
            <summary>
            Gets access to the <see cref="T:TVA.ServiceProcess.ServiceHelper"/>.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.ServiceHostBase.RemotingServer">
            <summary>
            Gets reference to the <see cref="T:TVA.Communication.TcpServer"/> based remoting server.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.ServiceHostBase.AllAdapters">
            <summary>
            Gets reference to the <see cref="T:TimeSeriesFramework.Adapters.AllAdaptersCollection"/>.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.ServiceHostBase.InputAdapters">
            <summary>
            Gets reference to the <see cref="T:TimeSeriesFramework.Adapters.InputAdapterCollection"/>.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.ServiceHostBase.ActionAdapters">
            <summary>
            Gets reference to the <see cref="T:TimeSeriesFramework.Adapters.ActionAdapterCollection"/>.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.ServiceHostBase.OutputAdapters">
            <summary>
            Gets reference to the <see cref="T:TimeSeriesFramework.Adapters.OutputAdapterCollection"/>.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.ServiceHostBase.NodeID">
            <summary>
            Gets the current node ID.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.ServiceHostBase.NodeIDQueryString">
            <summary>
            Gets the current node ID formatted for use in a SQL query string based on <see cref="P:TimeSeriesFramework.ServiceHostBase.ConfigurationType"/>.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.ServiceHostBase.DataSource">
            <summary>
            Gets the currently loaded system configuration <see cref="T:System.Data.DataSet"/>.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.ServiceHostBase.ConfigurationType">
            <summary>
            Gets the defined system <see cref="T:TimeSeriesFramework.ConfigurationType"/>.
            </summary>
        </member>
        <member name="T:TimeSeriesFramework.TemporalMeasurement">
            <summary>
            Represents a time constrained measured value.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.TemporalMeasurement.#ctor(System.Double,System.Double)">
            <summary>
            Constructs a new <see cref="T:TimeSeriesFramework.TemporalMeasurement"/> given the specified parameters.
            </summary>
            <param name="lagTime">Past time deviation tolerance, in seconds - this becomes the amount of time to wait before publishing begins.</param>
            <param name="leadTime">Future time deviation tolerance, in seconds - this becomes the tolerated +/- accuracy of the local clock to real-time.</param>
        </member>
        <member name="M:TimeSeriesFramework.TemporalMeasurement.#ctor(TimeSeriesFramework.IMeasurement,System.Double,System.Double)">
            <summary>
            Constructs a new <see cref="T:TimeSeriesFramework.TemporalMeasurement"/> given the specified parameters.
            </summary>
            <param name="measurement">Source <see cref="T:TimeSeriesFramework.IMeasurement"/> value.</param>
            <param name="lagTime">Past time deviation tolerance, in seconds - this becomes the amount of time to wait before publishing begins.</param>
            <param name="leadTime">Future time deviation tolerance, in seconds - this becomes the tolerated +/- accuracy of the local clock to real-time.</param>
        </member>
        <member name="M:TimeSeriesFramework.TemporalMeasurement.GetAdjustedValue(TVA.Ticks)">
            <summary>Gets numeric adjusted value of this <see cref="T:TimeSeriesFramework.TemporalMeasurement"/>, constrained within specified ticks.</summary>
            <remarks>
            <para>Operation will return NaN if ticks are outside of time deviation tolerances.</para>
            <para>Note that returned value will be offset by adder and multiplier.</para>
            </remarks>
            <param name="timestamp">Timestamp used to constrain <see cref="T:TimeSeriesFramework.TemporalMeasurement"/> (typically set to real-time, i.e. "now").</param>
            <returns>Value offset by adder and multipler (i.e., Value * Multiplier + Adder).</returns>
        </member>
        <member name="M:TimeSeriesFramework.TemporalMeasurement.GetValue(TVA.Ticks)">
            <summary>Gets numeric value of this <see cref="T:TimeSeriesFramework.TemporalMeasurement"/>, constrained within specified ticks.</summary>
            <remarks>
            <para>Operation will return NaN if ticks are outside of time deviation tolerances.</para>
            </remarks>
            <param name="timestamp">Timestamp, in ticks, used to constrain <see cref="T:TimeSeriesFramework.TemporalMeasurement"/> (typically set to real-time, i.e. "now").</param>
            <returns>Raw value of this measurement (i.e., value that is not offset by adder and multiplier).</returns>
        </member>
        <member name="M:TimeSeriesFramework.TemporalMeasurement.SetValue(TVA.Ticks,System.Double)">
            <summary>Sets numeric value and timestamp, as ticks, of this <see cref="T:TimeSeriesFramework.TemporalMeasurement"/>.</summary>
            <remarks>
            <para>Operation will only store a value that is newer than the cached value.</para>
            </remarks>
            <param name="timestamp">New timestamp, in ticks, for <see cref="T:TimeSeriesFramework.TemporalMeasurement"/>.</param>
            <param name="value">New value for <see cref="T:TimeSeriesFramework.TemporalMeasurement"/>, only stored if <paramref name="timestamp"/> are newer than current <see cref="T:TVA.Ticks"/>.</param>
            <returns><c>true</c> if value was updated; otherwise <c>false</c>.</returns>
        </member>
        <member name="P:TimeSeriesFramework.TemporalMeasurement.LagTime">
            <summary>Allowed past time deviation tolerance in seconds (can be subsecond).</summary>
            <remarks>
            <para>This value defines the time sensitivity to past measurement timestamps.</para>
            <para>Defined the number of seconds allowed before assuming a measurement timestamp is too old.</para>
            </remarks>
            <exception cref="T:System.ArgumentOutOfRangeException">LagTime must be greater than zero, but it can be less than one.</exception>
        </member>
        <member name="P:TimeSeriesFramework.TemporalMeasurement.LeadTime">
            <summary>Allowed future time deviation tolerance in seconds (can be subsecond).</summary>
            <remarks>
            <para>This value defines the time sensitivity to future measurement timestamps.</para>
            <para>Defined the number of seconds allowed before assuming a measurement timestamp is too advanced.</para>
            </remarks>
            <exception cref="T:System.ArgumentOutOfRangeException">LeadTime must be greater than zero, but it can be less than one.</exception>
        </member>
        <member name="T:TimeSeriesFramework.TrackingFrame">
            <summary>
            <see cref="T:TimeSeriesFramework.IFrame"/> container used to track <see cref="T:TimeSeriesFramework.IMeasurement"/> values for downsampling.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.TrackingFrame.#ctor(TimeSeriesFramework.IFrame,TimeSeriesFramework.DownsamplingMethod)">
            <summary>
            Constructs a new <see cref="T:TimeSeriesFramework.TrackingFrame"/> given the specified parameters.
            </summary>
            <param name="sourceFrame">Source <see cref="T:TimeSeriesFramework.IFrame"/> to track.</param>
            <param name="downsamplingMethod"><see cref="T:TimeSeriesFramework.DownsamplingMethod"/> to apply.</param>
        </member>
        <member name="M:TimeSeriesFramework.TrackingFrame.DeriveMeasurementValue(TimeSeriesFramework.IMeasurement)">
            <summary>
            Derives measurement value, downsampling if needed.
            </summary>
            <param name="measurement">New <see cref="T:TimeSeriesFramework.IMeasurement"/> value.</param>
            <returns>New derived <see cref="T:TimeSeriesFramework.IMeasurement"/> value, or null if value should not be assigned to <see cref="T:TimeSeriesFramework.IFrame"/>.</returns>
        </member>
        <member name="P:TimeSeriesFramework.TrackingFrame.SourceFrame">
            <summary>
            Gets instance of <see cref="T:TimeSeriesFramework.IFrame"/> being tracked.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.TrackingFrame.Timestamp">
            <summary>
            Gets timestamp of <see cref="T:TimeSeriesFramework.IFrame"/> being tracked.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.TrackingFrame.DownsampledMeasurements">
            <summary>
            Total number of measurements downsampled by <see cref="T:TimeSeriesFramework.TrackingFrame"/>.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.TrackingFrame.Lock">
            <summary>
            Gets the <see cref="T:TimeSeriesFramework.TrackingFrame"/> locking primitive.
            </summary>
        </member>
        <member name="T:TimeSeriesFramework.Transport.CompactMeasurementStateFlags">
            <summary>
            <see cref="T:TimeSeriesFramework.Transport.CompactMeasurement"/> state flags.
            </summary>
        </member>
        <member name="F:TimeSeriesFramework.Transport.CompactMeasurementStateFlags.DataRange">
            <summary>
            A data range flag was set.
            </summary>
        </member>
        <member name="F:TimeSeriesFramework.Transport.CompactMeasurementStateFlags.DataQuality">
            <summary>
            A data quality flag was set.
            </summary>
        </member>
        <member name="F:TimeSeriesFramework.Transport.CompactMeasurementStateFlags.TimeQuality">
            <summary>
            A time quality flag was set.
            </summary>
        </member>
        <member name="F:TimeSeriesFramework.Transport.CompactMeasurementStateFlags.SystemIssue">
            <summary>
            A system flag was set.
            </summary>
        </member>
        <member name="F:TimeSeriesFramework.Transport.CompactMeasurementStateFlags.CalculatedValue">
            <summary>
            Calculated value bit was set.
            </summary>
        </member>
        <member name="F:TimeSeriesFramework.Transport.CompactMeasurementStateFlags.DiscardedValue">
            <summary>
            Discarded value bit was set.
            </summary>
        </member>
        <member name="F:TimeSeriesFramework.Transport.CompactMeasurementStateFlags.BaseTimeOffset">
            <summary>
            Compact measurement timestamp was serialized using base time offset when set.
            </summary>
        </member>
        <member name="F:TimeSeriesFramework.Transport.CompactMeasurementStateFlags.TimeIndex">
            <summary>
            Use odd time index (i.e., 1) when bit is set; even time index (i.e., 0) when bit is clear.
            </summary>
        </member>
        <member name="F:TimeSeriesFramework.Transport.CompactMeasurementStateFlags.NoFlags">
            <summary>
            No flags.
            </summary>
        </member>
        <member name="T:TimeSeriesFramework.Transport.MeasurementStateMappingExtensions">
            <summary>
            Defines static methods for mapping between compact and full measurement states.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Transport.MeasurementStateMappingExtensions.MapToCompactFlags(TimeSeriesFramework.MeasurementStateFlags)">
            <summary>
            Maps <see cref="T:TimeSeriesFramework.MeasurementStateFlags"/> to <see cref="T:TimeSeriesFramework.Transport.CompactMeasurementStateFlags"/>.
            </summary>
            <param name="stateFlags">Flags to map.</param>
            <returns><see cref="T:TimeSeriesFramework.Transport.CompactMeasurementStateFlags"/> mapped from <see cref="T:TimeSeriesFramework.MeasurementStateFlags"/>.</returns>
        </member>
        <member name="M:TimeSeriesFramework.Transport.MeasurementStateMappingExtensions.MapToFullFlags(TimeSeriesFramework.Transport.CompactMeasurementStateFlags)">
            <summary>
            Maps <see cref="T:TimeSeriesFramework.Transport.CompactMeasurementStateFlags"/> to <see cref="T:TimeSeriesFramework.MeasurementStateFlags"/>.
            </summary>
            <param name="stateFlags">Flags to map.</param>
            <returns><see cref="T:TimeSeriesFramework.MeasurementStateFlags"/> mapped from <see cref="T:TimeSeriesFramework.Transport.CompactMeasurementStateFlags"/>.</returns>
        </member>
        <member name="T:TimeSeriesFramework.Transport.CompactMeasurement">
            <summary>
            Represents a <see cref="T:TimeSeriesFramework.IMeasurement"/> that can be serialized with minimal size.
            </summary>
            <remarks>
            This measurement implementation is serialized through <see cref="T:TVA.Parsing.ISupportBinaryImage"/>
            to allow complete control of binary format. Only critical measurements properties are
            serialized and every attempt is made to optimize the binary image for purposes of size
            reduction.
            </remarks>
        </member>
        <member name="F:TimeSeriesFramework.Transport.CompactMeasurement.FixedLength">
            <summary>
            Fixed byte length of a <see cref="T:TimeSeriesFramework.Transport.CompactMeasurement"/>.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Transport.CompactMeasurement.#ctor(TimeSeriesFramework.Transport.SignalIndexCache,System.Boolean,System.Int64[],System.Int32,System.Boolean)">
            <summary>
            Creates a new <see cref="T:TimeSeriesFramework.Transport.CompactMeasurement"/>.
            </summary>
            <param name="signalIndexCache">Signal index cache used to serialize or deserialize runtime information.</param>
            <param name="includeTime">Set to <c>true</c> to include time in serialized packet; otherwise <c>false</c>.</param>
            <param name="baseTimeOffsets">Base time offset array - set to <c>null</c> to use full fidelity measurement time.</param>
            <param name="timeIndex">Time index to use for base offset.</param>
            <param name="useMillisecondResolution">Flag that determines if millisecond resolution is in use for this serialization.</param>
        </member>
        <member name="M:TimeSeriesFramework.Transport.CompactMeasurement.#ctor(TimeSeriesFramework.IMeasurement,TimeSeriesFramework.Transport.SignalIndexCache,System.Boolean,System.Int64[],System.Int32,System.Boolean)">
            <summary>
            Creates a new <see cref="T:TimeSeriesFramework.Transport.CompactMeasurement"/> from an existing <see cref="T:TimeSeriesFramework.IMeasurement"/> value.
            </summary>
            <param name="measurement">Source <see cref="T:TimeSeriesFramework.IMeasurement"/> value.</param>
            <param name="signalIndexCache">Signal index cache used to serialize or deserialize runtime information.</param>
            <param name="includeTime">Set to <c>true</c> to include time in serialized packet; otherwise <c>false</c>.</param>
            <param name="baseTimeOffsets">Base time offset array - set to <c>null</c> to use full fidelity measurement time.</param>
            <param name="timeIndex">Time index to use for base offset.</param>
            <param name="useMillisecondResolution">Flag that determines if millisecond resolution is in use for this serialization.</param>
        </member>
        <member name="M:TimeSeriesFramework.Transport.CompactMeasurement.ParseBinaryImage(System.Byte[],System.Int32,System.Int32)">
            <summary>
            Initializes <see cref="T:TimeSeriesFramework.Transport.CompactMeasurement"/> from the specified binary image.
            </summary>
            <param name="buffer">Buffer containing binary image to parse.</param>
            <param name="startIndex">0-based starting index in the <paramref name="buffer"/> to start parsing.</param>
            <param name="length">Valid number of bytes within <paramref name="buffer"/> from <paramref name="startIndex"/>.</param>
            <returns>The number of bytes used for initialization in the <paramref name="buffer"/> (i.e., the number of bytes parsed).</returns>
            <exception cref="T:System.InvalidOperationException">Not enough buffer available to deserialize measurement.</exception>
            <exception cref="T:System.ArgumentNullException"><paramref name="buffer"/> is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">
            <paramref name="startIndex"/> or <paramref name="length"/> is less than 0 -or- 
            <paramref name="startIndex"/> and <paramref name="length"/> will exceed <paramref name="buffer"/> length.
            </exception>
        </member>
        <member name="M:TimeSeriesFramework.Transport.CompactMeasurement.GenerateBinaryImage(System.Byte[],System.Int32)">
            <summary>
            Generates binary image of the <see cref="T:TimeSeriesFramework.Transport.CompactMeasurement"/> and copies it into the given buffer, for <see cref="P:TVA.Parsing.ISupportBinaryImage.BinaryLength"/> bytes.
            </summary>
            <param name="buffer">Buffer used to hold generated binary image of the source object.</param>
            <param name="startIndex">0-based starting index in the <paramref name="buffer"/> to start writing.</param>
            <returns>The number of bytes written to the <paramref name="buffer"/>.</returns>
            <exception cref="T:System.ArgumentNullException"><paramref name="buffer"/> is null.</exception>
            <exception cref="T:System.ArgumentOutOfRangeException">
            <paramref name="startIndex"/> or <see cref="P:TVA.Parsing.ISupportBinaryImage.BinaryLength"/> is less than 0 -or- 
            <paramref name="startIndex"/> and <see cref="P:TVA.Parsing.ISupportBinaryImage.BinaryLength"/> will exceed <paramref name="buffer"/> length.
            </exception>
            <remarks>
            <para>
            Field:     Bytes: <br/>
            --------   -------<br/>
             Flags        1   <br/>
              ID          2   <br/>
             Value        4   <br/>
             [Time]       2?  <br/>
            </para>
            <para>
            Constant Length = 7<br/>
            Variable Length = 0, 2, 4 or 8 (i.e., total size is 7, 9, 11 or 15)
            </para>
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.Transport.CompactMeasurement.IncludeTime">
            <summary>
            Gets flag that determines if time is serialized into measurement binary image.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Transport.CompactMeasurement.BinaryLength">
            <summary>
            Gets the length of the <see cref="T:TimeSeriesFramework.Transport.CompactMeasurement"/>.
            </summary>
        </member>
        <member name="T:TimeSeriesFramework.Transport.IClientSubscription">
            <summary>
            Represents a common set of interfaces for a client adapter subscription to the <see cref="T:TimeSeriesFramework.Transport.DataPublisher"/>.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Transport.IClientSubscription.OnStatusMessage(System.String)">
            <summary>
            Explictly raises the <see cref="E:TimeSeriesFramework.Adapters.IAdapter.StatusMessage"/> event.
            </summary>
            <param name="status">New status message.</param>
        </member>
        <member name="M:TimeSeriesFramework.Transport.IClientSubscription.OnProcessException(System.Exception)">
            <summary>
            Explictly raises the <see cref="E:TimeSeriesFramework.Adapters.IAdapter.ProcessException"/> event.
            </summary>
            <param name="ex">Processing <see cref="T:System.Exception"/>.</param>
        </member>
        <member name="M:TimeSeriesFramework.Transport.IClientSubscription.OnProcessingCompleted(System.Object,System.EventArgs)">
            <summary>
            Explictly raises the <see cref="E:TimeSeriesFramework.Adapters.IInputAdapter.ProcessingComplete"/> event.
            </summary>
            <param name="sender"><see cref="T:TimeSeriesFramework.Adapters.IInputAdapter"/> raising the notification.</param>
            <param name="e">Event arguments for notification, if any.</param>
        </member>
        <member name="E:TimeSeriesFramework.Transport.IClientSubscription.ProcessingComplete">
            <summary>
            Indicates to the host that processing for an input adapter (via temporal session) has completed.
            </summary>
            <remarks>
            This event is expected to only be raised when an input adapter has been designed to process
            a finite amount of data, e.g., reading a historical range of data during temporal procesing.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.Transport.IClientSubscription.ClientID">
            <summary>
            Gets the <see cref="T:System.Guid"/> client TCP connection identifier of this <see cref="T:TimeSeriesFramework.Transport.IClientSubscription"/>.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Transport.IClientSubscription.SubscriberID">
            <summary>
            Gets the <see cref="T:System.Guid"/> based subscriber ID of this <see cref="T:TimeSeriesFramework.Transport.IClientSubscription"/>.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Transport.IClientSubscription.SignalIndexCache">
            <summary>
            Gets the current signal index cache of this <see cref="T:TimeSeriesFramework.Transport.IClientSubscription"/>.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Transport.IClientSubscription.UseCompactMeasurementFormat">
            <summary>
            Gets or sets flag that determines if the compact measurement format should be used in data packets of this <see cref="T:TimeSeriesFramework.Transport.IClientSubscription"/>.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Transport.IClientSubscription.TimestampSize">
            <summary>
            Gets size of timestamp in bytes.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Transport.IClientSubscription.HostName">
            <summary>
            Gets or sets host name used to identify connection source of client subscription.
            </summary>
        </member>
        <member name="T:TimeSeriesFramework.Transport.IClientSubscriptionExtensions">
            <summary>
            Defines static extension functions for <see cref="T:TimeSeriesFramework.Transport.IClientSubscription"/> implementations.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Transport.IClientSubscriptionExtensions.CreateTemporalSession(TimeSeriesFramework.Transport.IClientSubscription)">
            <summary>
            Returns a new temporal <see cref="T:TimeSeriesFramework.Adapters.IaonSession"/> for a <see cref="T:TimeSeriesFramework.Transport.IClientSubscription"/>.
            </summary>
            <param name="clientSubscription"><see cref="T:TimeSeriesFramework.Transport.IClientSubscription"/> instance to create temporal <see cref="T:TimeSeriesFramework.Adapters.IaonSession"/> for.</param>
            <returns>New temporal <see cref="T:TimeSeriesFramework.Adapters.IaonSession"/> for a <see cref="T:TimeSeriesFramework.Transport.IClientSubscription"/>.</returns>
        </member>
        <member name="M:TimeSeriesFramework.Transport.IClientSubscriptionExtensions.DisposeTemporalSession(TimeSeriesFramework.Transport.IClientSubscription,TimeSeriesFramework.Adapters.IaonSession@)">
            <summary>
            Disposes a temporal <see cref="T:TimeSeriesFramework.Adapters.IaonSession"/> created using <see cref="M:TimeSeriesFramework.Transport.IClientSubscriptionExtensions.CreateTemporalSession(TimeSeriesFramework.Transport.IClientSubscription)"/>.
            </summary>
            <param name="adapter"><see cref="T:TimeSeriesFramework.Transport.IClientSubscription"/> source instance.</param>
            <param name="session"><see cref="T:TimeSeriesFramework.Adapters.IaonSession"/> instance to dispose.</param>
        </member>
        <member name="T:TimeSeriesFramework.Transport.SignalIndexCache">
            <summary>
            Represents a serializable <see cref="T:System.Guid"/> signal ID to <see cref="T:System.UInt16"/> index cross reference.
            </summary>
            <remarks>
            This class is used to create a runtime index to be used for data exchange so that a 16-bit integer
            is exchanged in the data packets for signal identification instead of the 128-bit Guid signal ID
            to reduce bandwidth required for signal exchange. This means the total number of unique signal
            IDs that could be exchanged using this method in a single session is 65,535. This number seems
            reasonable for the currently envisioned use cases, however, multiple sessions each with their own
            runtime signal index cache could be established if this is a limitation for a given data set.
            </remarks>
        </member>
        <member name="M:TimeSeriesFramework.Transport.SignalIndexCache.#ctor">
            <summary>
            Creates a new <see cref="T:TimeSeriesFramework.Transport.SignalIndexCache"/> instance.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Transport.SignalIndexCache.#ctor(System.Data.DataSet,TimeSeriesFramework.Transport.SignalIndexCache)">
            <summary>
            Creates a new local system cache from one that was received remotely.
            </summary>
            <param name="dataSource"><see cref="T:System.Data.DataSet"/> based data source used to interpret local measurement keys.</param>
            <param name="remoteCache">Deserialized remote signal index cache.</param>
        </member>
        <member name="M:TimeSeriesFramework.Transport.SignalIndexCache.GetSignalIndex(System.Guid)">
            <summary>
            Gets runtime signal index for given <see cref="T:System.Guid"/> signal ID.
            </summary>
            <param name="signalID"><see cref="T:System.Guid"/> signal ID used to lookup associated runtime signal index.</param>
            <returns>Runtime signal index for given <see cref="T:System.Guid"/> <paramref name="signalID"/>.</returns>
        </member>
        <member name="M:TimeSeriesFramework.Transport.SignalIndexCache.GenerateBinaryImage(System.Byte[],System.Int32)">
            <summary>
            Generates binary image of the <see cref="T:TimeSeriesFramework.Transport.SignalIndexCache"/> and copies it into the given buffer, for <see cref="P:TimeSeriesFramework.Transport.SignalIndexCache.BinaryLength"/> bytes.
            </summary>
            <param name="buffer">Buffer used to hold generated binary image of the source object.</param>
            <param name="startIndex">0-based starting index in the <paramref name="buffer"/> to start writing.</param>
            <returns>The number of bytes written to the <paramref name="buffer"/>.</returns>
        </member>
        <member name="M:TimeSeriesFramework.Transport.SignalIndexCache.ParseBinaryImage(System.Byte[],System.Int32,System.Int32)">
            <summary>
            Initializes the <see cref="T:TimeSeriesFramework.Transport.SignalIndexCache"/> by parsing the specified <paramref name="buffer"/> containing a binary image.
            </summary>
            <param name="buffer">Buffer containing binary image to parse.</param>
            <param name="startIndex">0-based starting index in the <paramref name="buffer"/> to start parsing.</param>
            <param name="length">Valid number of bytes within <paramref name="buffer"/> to read from <paramref name="startIndex"/>.</param>
            <returns>The number of bytes used for initialization in the <paramref name="buffer"/> (i.e., the number of bytes parsed).</returns>
        </member>
        <member name="P:TimeSeriesFramework.Transport.SignalIndexCache.SubscriberID">
            <summary>
            Gets or sets the <see cref="T:System.Guid"/> based subscriber ID of this <see cref="T:TimeSeriesFramework.Transport.SignalIndexCache"/>.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Transport.SignalIndexCache.Reference">
            <summary>
            Gets or sets integer signal index cross reference dictionary.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Transport.SignalIndexCache.AuthorizedSignalIDs">
            <summary>
            Gets reference to array of requested input measurement signal IDs that were authorized.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Transport.SignalIndexCache.UnauthorizedSignalIDs">
            <summary>
            Gets or sets reference to array of requested input measurement signal IDs that were unauthorized.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Transport.SignalIndexCache.MaximumIndex">
            <summary>
            Gets the current maximum integer signal index.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Transport.SignalIndexCache.Encoding">
            <summary>
            Gets or sets character encoding used to convert strings to binary.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Transport.SignalIndexCache.BinaryLength">
            <summary>
            Gets the length of the binary image.
            </summary>
        </member>
        <member name="T:TimeSeriesFramework.Transport.SubscriptionInfo">
            <summary>
            Configuration object for data subscriptions.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Transport.SubscriptionInfo.#ctor">
            <summary>
            Creates a new instance of the <see cref="T:TimeSeriesFramework.Transport.SubscriptionInfo"/> class.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Transport.SubscriptionInfo.Copy">
            <summary>
            Creates a shallow copy of this
            <see cref="T:TimeSeriesFramework.Transport.SubscriptionInfo"/> object.
            </summary>
            <returns>The copy of this object.</returns>
        </member>
        <member name="P:TimeSeriesFramework.Transport.SubscriptionInfo.FilterExpression">
            <summary>
            Gets or sets the filter expression used to define which
            measurements are being requested by the subscriber.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Transport.SubscriptionInfo.UseCompactMeasurementFormat">
            <summary>
            Gets or sets the flag that determines whether to use the
            compact measurement format or the full measurement format
            for transmitting measurements to the subscriber.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Transport.SubscriptionInfo.UdpDataChannel">
            <summary>
            Gets or sets the flag that determines whether the subscriber
            is requesting its data over a separate UDP data channel.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Transport.SubscriptionInfo.DataChannelLocalPort">
            <summary>
            Gets or sets the port number that the UDP data channel binds to.
            This value is only used when the subscriber requests a separate
            UDP data channel.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Transport.SubscriptionInfo.LagTime">
            <summary>
            Gets or sets the allowed past time deviation
            tolerance in seconds (can be subsecond).
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Transport.SubscriptionInfo.LeadTime">
            <summary>
            Gets or sets the allowed future time deviation
            tolerance, in seconds (can be subsecond).
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Transport.SubscriptionInfo.UseLocalClockAsRealTime">
            <summary>
            Gets or sets the flag that determines whether the server's
            local clock is used as real-time. If false, the timestamps
            of the measurements will be used as real-time.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Transport.SubscriptionInfo.UseMillisecondResolution">
            <summary>
            Gets or sets the flag that determines whether measurement timestamps use
            millisecond resolution. If false, they will use <see cref="T:TVA.Ticks"/> resolution.
            </summary>
            <remarks>
            This flag determines the size of the timestamps transmitted as part of
            the compact measurement format when the server is using base time offsets.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.Transport.SubscriptionInfo.StartTime">
            <summary>
            Gets or sets the start time of the requested
            temporal session for streaming historic data.
            </summary>
            <remarks>
            <para>
            When the <see cref="P:TimeSeriesFramework.Transport.SubscriptionInfo.StartTime"/> or <see cref="P:TimeSeriesFramework.Transport.SubscriptionInfo.StopTime"/> temporal processing contraints are defined (i.e., not <c>null</c>), this
            specifies the start and stop time over which the subscriber session will process data. Passing in <c>null</c> for the <see cref="P:TimeSeriesFramework.Transport.SubscriptionInfo.StartTime"/>
            and <see cref="P:TimeSeriesFramework.Transport.SubscriptionInfo.StopTime"/> specifies the the subscriber session will process data in standard, i.e., real-time, operation.
            </para>
            
            <para>
            Both the <see cref="P:TimeSeriesFramework.Transport.SubscriptionInfo.StartTime"/> and <see cref="P:TimeSeriesFramework.Transport.SubscriptionInfo.StopTime"/> parameters can be specified in one of the
            following formats:
            <list type="table">
                <listheader>
                    <term>Time Format</term>
                    <description>Format Description</description>
                </listheader>
                <item>
                    <term>12-30-2000 23:59:59.033</term>
                    <description>Absolute date and time.</description>
                </item>
                <item>
                    <term>*</term>
                    <description>Evaluates to <see cref="P:System.DateTime.UtcNow"/>.</description>
                </item>
                <item>
                    <term>*-20s</term>
                    <description>Evaluates to 20 seconds before <see cref="P:System.DateTime.UtcNow"/>.</description>
                </item>
                <item>
                    <term>*-10m</term>
                    <description>Evaluates to 10 minutes before <see cref="P:System.DateTime.UtcNow"/>.</description>
                </item>
                <item>
                    <term>*-1h</term>
                    <description>Evaluates to 1 hour before <see cref="P:System.DateTime.UtcNow"/>.</description>
                </item>
                <item>
                    <term>*-1d</term>
                    <description>Evaluates to 1 day before <see cref="P:System.DateTime.UtcNow"/>.</description>
                </item>
            </list>
            </para>
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.Transport.SubscriptionInfo.StopTime">
            <summary>
            Gets or sets the stop time of the requested
            temporal session for streaming historic data.
            </summary>
            <remarks>
            <para>
            When the <see cref="P:TimeSeriesFramework.Transport.SubscriptionInfo.StartTime"/> or <see cref="P:TimeSeriesFramework.Transport.SubscriptionInfo.StopTime"/> temporal processing contraints are defined (i.e., not <c>null</c>), this
            specifies the start and stop time over which the subscriber session will process data. Passing in <c>null</c> for the <see cref="P:TimeSeriesFramework.Transport.SubscriptionInfo.StartTime"/>
            and <see cref="P:TimeSeriesFramework.Transport.SubscriptionInfo.StopTime"/> specifies the the subscriber session will process data in standard, i.e., real-time, operation.
            </para>
            
            <para>
            Both the <see cref="P:TimeSeriesFramework.Transport.SubscriptionInfo.StartTime"/> and <see cref="P:TimeSeriesFramework.Transport.SubscriptionInfo.StopTime"/> parameters can be specified in one of the
            following formats:
            <list type="table">
                <listheader>
                    <term>Time Format</term>
                    <description>Format Description</description>
                </listheader>
                <item>
                    <term>12-30-2000 23:59:59.033</term>
                    <description>Absolute date and time.</description>
                </item>
                <item>
                    <term>*</term>
                    <description>Evaluates to <see cref="P:System.DateTime.UtcNow"/>.</description>
                </item>
                <item>
                    <term>*-20s</term>
                    <description>Evaluates to 20 seconds before <see cref="P:System.DateTime.UtcNow"/>.</description>
                </item>
                <item>
                    <term>*-10m</term>
                    <description>Evaluates to 10 minutes before <see cref="P:System.DateTime.UtcNow"/>.</description>
                </item>
                <item>
                    <term>*-1h</term>
                    <description>Evaluates to 1 hour before <see cref="P:System.DateTime.UtcNow"/>.</description>
                </item>
                <item>
                    <term>*-1d</term>
                    <description>Evaluates to 1 day before <see cref="P:System.DateTime.UtcNow"/>.</description>
                </item>
            </list>
            </para>
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.Transport.SubscriptionInfo.ConstraintParameters">
            <summary>
            Gets or sets the aditional constraint parameters
            supplied to temporal adapters in a temporal session.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Transport.SubscriptionInfo.ProcessingInterval">
            <summary>
            Gets or sets the processing interval requested by the subscriber.
            A value of <c>-1</c> indicates the default processing interval.
            A value of <c>0</c> indicates data will be processed as fast as
            possible.
            </summary>
            <remarks>
            With the exception of the values of -1 and 0, the <see cref="P:TimeSeriesFramework.Transport.SubscriptionInfo.ProcessingInterval"/> value specifies the desired historical playback data
            processing interval in milliseconds. This is basically a delay, or timer interval, overwhich to process data. Setting this value to -1 means
            to use the default processing interval while setting the value to 0 means to process data as fast as possible.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.Transport.SubscriptionInfo.WaitHandleNames">
            <summary>
            Gets or sets the wait handle names used to deterministically
            wait for data to become available on the server side.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Transport.SubscriptionInfo.WaitHandleTimeout">
            <summary>
            Gets or sets the amount of time to wait on the wait handles
            identified by the <see cref="P:TimeSeriesFramework.Transport.SubscriptionInfo.WaitHandleNames"/> before the
            operation times out.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Transport.SubscriptionInfo.ExtraConnectionStringParameters">
            <summary>
            Gets or sets the additional connection string parameters to
            be applied to the connection string sent to the publisher
            during subscription.
            </summary>
        </member>
        <member name="T:TimeSeriesFramework.Transport.SynchronizedSubscriptionInfo">
            <summary>
            Configuration object for synchronized data subscriptions.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Transport.SynchronizedSubscriptionInfo.#ctor(System.Boolean,System.Int32)">
            <summary>
            Creates a new instance of the <see cref="T:TimeSeriesFramework.Transport.SynchronizedSubscriptionInfo"/> class.
            </summary>
            <param name="remotelySynchronized">Flag that determines whether the subscription defined by this object is remotely synchronized or locally synchronized.</param>
            <param name="framesPerSecond">Frame rate of the subscription in frames per second.</param>
        </member>
        <member name="P:TimeSeriesFramework.Transport.SynchronizedSubscriptionInfo.RemotelySynchronized">
            <summary>
            Gets or sets the flag that determines whether this subscription
            is remotely synchronized or locally synchronized.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Transport.SynchronizedSubscriptionInfo.FramesPerSecond">
            <summary>
            Gets or sets the frame rate of the subscription in frames per second.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Transport.SynchronizedSubscriptionInfo.DownsamplingMethod">
            <summary>
            Gets or sets the downsampling method used when the frame rate of
            the subscription is lower than the frame rate of the measurement's
            source.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Transport.SynchronizedSubscriptionInfo.AllowPreemptivePublishing">
            <summary>
            Gets or sets the flag that determines whether frames should be published
            as soon as the data is available. If false, frames will be published
            when their timestamp expires <c>(realTime > timestamp + lagTime)</c>.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Transport.SynchronizedSubscriptionInfo.AllowSortsByArrival">
            <summary>
            Gets or sets the flag that determines whether to allow measurement
            sorting based on the measurement's time of arrival, if its timestamp
            is unreasonable.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Transport.SynchronizedSubscriptionInfo.IgnoreBadTimestamps">
            <summary>
            Gets or sets the flag that determines whether to
            ignore bad timestamps when sorting measurements.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Transport.SynchronizedSubscriptionInfo.TimeResolution">
            <summary>
            Gets or sets the maximum time resolution, in ticks, to use when sorting measurements by timestamps into their proper destination frame.
            </summary>
            <remarks>
            <list type="table">
                <listheader>
                    <term>Desired maximum resolution</term>
                    <description>Value to assign</description>
                </listheader>
                <item>
                    <term>Seconds</term>
                    <description><see cref="T:TVA.Ticks"/>.<see cref="F:TVA.Ticks.PerSecond"/></description>
                </item>
                <item>
                    <term>Milliseconds</term>
                    <description><see cref="T:TVA.Ticks"/>.<see cref="F:TVA.Ticks.PerMillisecond"/></description>
                </item>
                <item>
                    <term>Microseconds</term>
                    <description><see cref="T:TVA.Ticks"/>.<see cref="F:TVA.Ticks.PerMicrosecond"/></description>
                </item>
                <item>
                    <term>100-Nanoseconds</term>
                    <description>0</description>
                </item>
            </list>
            Assigning values less than zero will be set to zero since minimum possible concentrator resolution is one tick (100-nanoseconds). Assigning
            values values greater than <see cref="T:TVA.Ticks"/>.<see cref="F:TVA.Ticks.PerSecond"/> will be set to <see cref="T:TVA.Ticks"/>.<see cref="F:TVA.Ticks.PerSecond"/>
            since maximum possible concentrator resolution is one second (i.e., 1 frame per second).
            </remarks>
        </member>
        <member name="T:TimeSeriesFramework.Transport.UnsynchronizedSubscriptionInfo">
            <summary>
            Configuration object for unsynchronized data subscriptions.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Transport.UnsynchronizedSubscriptionInfo.#ctor(System.Boolean)">
            <summary>
            Creates a new instance of the <see cref="T:TimeSeriesFramework.Transport.UnsynchronizedSubscriptionInfo"/> class.
            </summary>
            <param name="throttled">The flag that determines whether to request that the subscription be throttled.</param>
        </member>
        <member name="P:TimeSeriesFramework.Transport.UnsynchronizedSubscriptionInfo.Throttled">
            <summary>
            Gets or sets the flag that determines whether
            to request that the subscription be throttled.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Transport.UnsynchronizedSubscriptionInfo.PublishInterval">
            <summary>
            Gets or sets the interval at which data should be
            published when using a throttled subscription.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Transport.UnsynchronizedSubscriptionInfo.IncludeTime">
            <summary>
            Gets or sets the flag that determines whether timestamps are
            included in the data sent from the publisher. This value is
            ignored if the data is remotely synchronized.
            </summary>
        </member>
        <member name="T:TimeSeriesFramework.Transport.SynchronizedClientSubscription">
            <summary>
            Represents a synchronized client subscription to the <see cref="T:TimeSeriesFramework.Transport.DataPublisher"/>.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Transport.SynchronizedClientSubscription.#ctor(TimeSeriesFramework.Transport.DataPublisher,System.Guid,System.Guid)">
            <summary>
            Creates a new <see cref="T:TimeSeriesFramework.Transport.SynchronizedClientSubscription"/>.
            </summary>
            <param name="parent">Reference to parent.</param>
            <param name="clientID"><see cref="T:System.Guid"/> based client connection ID.</param>
            <param name="subscriberID"><see cref="T:System.Guid"/> based subscriber ID.</param>
        </member>
        <member name="M:TimeSeriesFramework.Transport.SynchronizedClientSubscription.Dispose(System.Boolean)">
            <summary>
            Releases the unmanaged resources used by the <see cref="T:TimeSeriesFramework.Transport.SynchronizedClientSubscription"/> object and optionally releases the managed resources.
            </summary>
            <param name="disposing">true to release both managed and unmanaged resources; false to release only unmanaged resources.</param>
        </member>
        <member name="M:TimeSeriesFramework.Transport.SynchronizedClientSubscription.Initialize">
            <summary>
            Initializes <see cref="T:TimeSeriesFramework.Transport.SynchronizedClientSubscription"/>.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Transport.SynchronizedClientSubscription.Start">
            <summary>
            Starts the <see cref="T:TimeSeriesFramework.Transport.SynchronizedClientSubscription"/> or restarts it if it is already running.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Transport.SynchronizedClientSubscription.QueueMeasurementsForProcessing(System.Collections.Generic.IEnumerable{TimeSeriesFramework.IMeasurement})">
            <summary>
            Queues a collection of measurements for processing.
            </summary>
            <param name="measurements">Collection of measurements to queue for processing.</param>
            <remarks>
            Measurements are filtered against the defined <see cref="P:TimeSeriesFramework.Transport.SynchronizedClientSubscription.InputMeasurementKeys"/> so we override method
            so that dynamic updates to keys will be synchronized with filtering to prevent interference.
            </remarks>
        </member>
        <member name="M:TimeSeriesFramework.Transport.SynchronizedClientSubscription.PublishFrame(TimeSeriesFramework.IFrame,System.Int32)">
            <summary>
            Publish <see cref="T:TimeSeriesFramework.IFrame"/> of time-aligned collection of <see cref="T:TimeSeriesFramework.IMeasurement"/> values that arrived within the
            concentrator's defined <see cref="P:TimeSeriesFramework.ConcentratorBase.LagTime"/>.
            </summary>
            <param name="frame"><see cref="T:TimeSeriesFramework.IFrame"/> of measurements with the same timestamp that arrived within <see cref="P:TimeSeriesFramework.ConcentratorBase.LagTime"/> that are ready for processing.</param>
            <param name="index">Index of <see cref="T:TimeSeriesFramework.IFrame"/> within a second ranging from zero to <c><see cref="P:TimeSeriesFramework.ConcentratorBase.FramesPerSecond"/> - 1</c>.</param>
        </member>
        <member name="E:TimeSeriesFramework.Transport.SynchronizedClientSubscription.ProcessingComplete">
            <summary>
            Indicates to the host that processing for an input adapter (via temporal session) has completed.
            </summary>
            <remarks>
            This event is expected to only be raised when an input adapter has been designed to process
            a finite amount of data, e.g., reading a historical range of data during temporal procesing.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.Transport.SynchronizedClientSubscription.ClientID">
            <summary>
            Gets the <see cref="T:System.Guid"/> client TCP connection identifier of this <see cref="T:TimeSeriesFramework.Transport.SynchronizedClientSubscription"/>.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Transport.SynchronizedClientSubscription.SubscriberID">
            <summary>
            Gets the <see cref="T:System.Guid"/> based subscriber ID of this <see cref="T:TimeSeriesFramework.Transport.SynchronizedClientSubscription"/>.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Transport.SynchronizedClientSubscription.SignalIndexCache">
            <summary>
            Gets the current signal index cache of this <see cref="T:TimeSeriesFramework.Transport.SynchronizedClientSubscription"/>.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Transport.SynchronizedClientSubscription.UseCompactMeasurementFormat">
            <summary>
            Gets or sets flag that determines if the compact measurement format should be used in data packets of this <see cref="T:TimeSeriesFramework.Transport.SynchronizedClientSubscription"/>.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Transport.SynchronizedClientSubscription.TimestampSize">
            <summary>
            Gets size of timestamp in bytes.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Transport.SynchronizedClientSubscription.HostName">
            <summary>
            Gets or sets host name used to identify connection source of client subscription.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Transport.SynchronizedClientSubscription.ProcessingInterval">
            <summary>
            Gets or sets the desired processing interval, in milliseconds, for the adapter.
            </summary>
            <remarks>
            With the exception of the values of -1 and 0, this value specifies the desired processing interval for data, i.e.,
            basically a delay, or timer interval, overwhich to process data. A value of -1 means to use the default processing
            interval while a value of 0 means to process data as fast as possible.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.Transport.SynchronizedClientSubscription.InputMeasurementKeys">
            <summary>
            Gets or sets primary keys of input measurements the <see cref="T:TimeSeriesFramework.Transport.SynchronizedClientSubscription"/> expects, if any.
            </summary>
            <remarks>
            We override method so assignment can be synchronized such that dynamic updates won't interfere
            with filtering in <see cref="M:TimeSeriesFramework.Transport.SynchronizedClientSubscription.QueueMeasurementsForProcessing(System.Collections.Generic.IEnumerable{TimeSeriesFramework.IMeasurement})"/>.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.Transport.SynchronizedClientSubscription.SupportsTemporalProcessing">
            <summary>
            Gets the flag indicating if this adapter supports temporal processing.
            </summary>
            <remarks>
            Although this adapter provisions support for temporal processing by proxying historical data to a remote sink, the adapter
            does not need to be automatically engaged within an actual temporal <see cref="T:TimeSeriesFramework.Adapters.IaonSession"/>, therefore this method returns
            <c>false</c> to make sure the adapter doesn't get automatically instantiated within a temporal session.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.Transport.SynchronizedClientSubscription.Status">
            <summary>
            Gets a formatted message describing the status of this <see cref="T:TimeSeriesFramework.Transport.SynchronizedClientSubscription"/>.
            </summary>
        </member>
        <member name="T:TimeSeriesFramework.Transport.TemporalClientSubscriptionProxy">
            <summary>
            Represents an action adapter that exists within a temporal <see cref="T:TimeSeriesFramework.Adapters.IaonSession"/> to proxy data back to its parent <see cref="T:TimeSeriesFramework.Transport.IClientSubscription"/> instance.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Transport.TemporalClientSubscriptionProxy.QueueMeasurementsForProcessing(System.Collections.Generic.IEnumerable{TimeSeriesFramework.IMeasurement})">
            <summary>
            Proxies measurements to parent adapter for processing.
            </summary>
            <param name="measurements">Collection of measurements to queue for processing.</param>
        </member>
        <member name="M:TimeSeriesFramework.Transport.TemporalClientSubscriptionProxy.GetShortStatus(System.Int32)">
            <summary>
            Gets a short one-line status of this <see cref="T:TimeSeriesFramework.Transport.TemporalClientSubscriptionProxy"/>.
            </summary>
            <param name="maxLength">Maximum number of available characters for display.</param>
            <returns>A short one-line summary of the current status for this <see cref="T:TimeSeriesFramework.Adapters.AdapterBase"/>.</returns>
        </member>
        <member name="P:TimeSeriesFramework.Transport.TemporalClientSubscriptionProxy.SupportsTemporalProcessing">
            <summary>
            Gets the flag indicating if this adapter supports temporal processing.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Transport.TemporalClientSubscriptionProxy.Parent">
            <summary>
            Gets or sets parent subscription for the proxy used to deliver data.
            </summary>
        </member>
        <member name="T:TimeSeriesFramework.Transport.UnsynchronizedClientSubscription">
            <summary>
            Represents an unsynchronized client subscription to the <see cref="T:TimeSeriesFramework.Transport.DataPublisher"/>.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Transport.UnsynchronizedClientSubscription.#ctor(TimeSeriesFramework.Transport.DataPublisher,System.Guid,System.Guid)">
            <summary>
            Creates a new <see cref="T:TimeSeriesFramework.Transport.UnsynchronizedClientSubscription"/>.
            </summary>
            <param name="parent">Reference to parent.</param>
            <param name="clientID"><see cref="T:System.Guid"/> based client connection ID.</param>
            <param name="subscriberID"><see cref="T:System.Guid"/> based subscriber ID.</param>
        </member>
        <member name="M:TimeSeriesFramework.Transport.UnsynchronizedClientSubscription.Dispose(System.Boolean)">
            <summary>
            Releases the unmanaged resources used by the <see cref="T:TimeSeriesFramework.Transport.UnsynchronizedClientSubscription"/> object and optionally releases the managed resources.
            </summary>
            <param name="disposing">true to release both managed and unmanaged resources; false to release only unmanaged resources.</param>
        </member>
        <member name="M:TimeSeriesFramework.Transport.UnsynchronizedClientSubscription.Initialize">
            <summary>
            Initializes <see cref="T:TimeSeriesFramework.Transport.UnsynchronizedClientSubscription"/>.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Transport.UnsynchronizedClientSubscription.Start">
            <summary>
            Starts the <see cref="T:TimeSeriesFramework.Transport.UnsynchronizedClientSubscription"/> or restarts it if it is already running.
            </summary>
        </member>
        <member name="M:TimeSeriesFramework.Transport.UnsynchronizedClientSubscription.Stop">
            <summary>
            Stops the <see cref="T:TimeSeriesFramework.Transport.UnsynchronizedClientSubscription"/>.
            </summary>	
        </member>
        <member name="M:TimeSeriesFramework.Transport.UnsynchronizedClientSubscription.GetShortStatus(System.Int32)">
            <summary>
            Gets a short one-line status of this <see cref="T:TimeSeriesFramework.Transport.UnsynchronizedClientSubscription"/>.
            </summary>
            <param name="maxLength">Maximum number of available characters for display.</param>
            <returns>A short one-line summary of the current status of this <see cref="T:TimeSeriesFramework.Adapters.AdapterBase"/>.</returns>
        </member>
        <member name="M:TimeSeriesFramework.Transport.UnsynchronizedClientSubscription.QueueMeasurementsForProcessing(System.Collections.Generic.IEnumerable{TimeSeriesFramework.IMeasurement})">
            <summary>
            Queues a collection of measurements for processing.
            </summary>
            <param name="measurements">Collection of measurements to queue for processing.</param>
            <remarks>
            Measurements are filtered against the defined <see cref="P:TimeSeriesFramework.Transport.UnsynchronizedClientSubscription.InputMeasurementKeys"/> so we override method
            so that dyanmic updates to keys will be synchronized with filtering to prevent interference.
            </remarks>
        </member>
        <member name="E:TimeSeriesFramework.Transport.UnsynchronizedClientSubscription.ProcessingComplete">
            <summary>
            Indicates to the host that processing for an input adapter (via temporal session) has completed.
            </summary>
            <remarks>
            This event is expected to only be raised when an input adapter has been designed to process
            a finite amount of data, e.g., reading a historical range of data during temporal procesing.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.Transport.UnsynchronizedClientSubscription.ClientID">
            <summary>
            Gets the <see cref="T:System.Guid"/> client TCP connection identifier of this <see cref="T:TimeSeriesFramework.Transport.UnsynchronizedClientSubscription"/>.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Transport.UnsynchronizedClientSubscription.SubscriberID">
            <summary>
            Gets the <see cref="T:System.Guid"/> based subscriber ID of this <see cref="T:TimeSeriesFramework.Transport.UnsynchronizedClientSubscription"/>.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Transport.UnsynchronizedClientSubscription.SignalIndexCache">
            <summary>
            Gets the current signal index cache of this <see cref="T:TimeSeriesFramework.Transport.UnsynchronizedClientSubscription"/>.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Transport.UnsynchronizedClientSubscription.UseCompactMeasurementFormat">
            <summary>
            Gets or sets flag that determines if the compact measurement format should be used in data packets of this <see cref="T:TimeSeriesFramework.Transport.UnsynchronizedClientSubscription"/>.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Transport.UnsynchronizedClientSubscription.TimestampSize">
            <summary>
            Gets size of timestamp in bytes.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Transport.UnsynchronizedClientSubscription.HostName">
            <summary>
            Gets or sets host name used to identify connection source of client subscription.
            </summary>
        </member>
        <member name="P:TimeSeriesFramework.Transport.UnsynchronizedClientSubscription.ProcessingInterval">
            <summary>
            Gets or sets the desired processing interval, in milliseconds, for the adapter.
            </summary>
            <remarks>
            With the exception of the values of -1 and 0, this value specifies the desired processing interval for data, i.e.,
            basically a delay, or timer interval, overwhich to process data. A value of -1 means to use the default processing
            interval while a value of 0 means to process data as fast as possible.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.Transport.UnsynchronizedClientSubscription.InputMeasurementKeys">
            <summary>
            Gets or sets primary keys of input measurements the <see cref="T:TimeSeriesFramework.Transport.UnsynchronizedClientSubscription"/> expects, if any.
            </summary>
            <remarks>
            We override method so assignment can be synchronized such that dynamic updates won't interfere
            with filtering in <see cref="M:TimeSeriesFramework.Transport.UnsynchronizedClientSubscription.QueueMeasurementsForProcessing(System.Collections.Generic.IEnumerable{TimeSeriesFramework.IMeasurement})"/>.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.Transport.UnsynchronizedClientSubscription.SupportsTemporalProcessing">
            <summary>
            Gets the flag indicating if this adapter supports temporal processing.
            </summary>
            <remarks>
            Although this adapter provisions support for temporal processing by proxying historical data to a remote sink, the adapter
            does not need to be automatically engaged within an actual temporal <see cref="T:TimeSeriesFramework.Adapters.IaonSession"/>, therefore this method returns
            <c>false</c> to make sure the adapter doesn't get automatically instantiated within a temporal session.
            </remarks>
        </member>
        <member name="P:TimeSeriesFramework.Transport.UnsynchronizedClientSubscription.Status">
            <summary>
            Gets a formatted message describing the status of this <see cref="T:TimeSeriesFramework.Transport.UnsynchronizedClientSubscription"/>.
            </summary>
        </member>
    </members>
</doc>
